Курс Python → Работа с массивами в Numpy

Библиотека Numpy предоставляет возможность работать с массивами данных, и при этом важно понимать разницу между копиями и представлениями. Когда мы присваиваем массив переменной, мы передаем не сам массив, а ссылку на него. Это означает, что изменения в новой переменной могут повлиять на исходный массив. Такая же ситуация возникает и при работе с массивами в Numpy.

Чтобы избежать нежелательных изменений в исходных данных, в Numpy существует два подхода: представление и глубокое копирование. Представление — это поверхностное копирование, которое позволяет изменять форму массива без изменения данных. Однако, при изменении данных в представлении, данные в исходном массиве также изменятся. Представление можно получить, например, через срез массива.

Глубокое копирование, в свою очередь, создает полностью новый объект, который не связан с исходным массивом. Новый массив хранится в отдельной ячейке памяти и изменения в нем не затронут исходный массив. Этот подход подходит в случаях, когда требуется полная независимость нового массива от исходного.

# Примеры кода на Python с использованием Numpy
import numpy as np

# Создание исходного массива
arr = np.array([1, 2, 3, 4, 5])

# Представление массива через срез
view_arr = arr[1:4]

# Изменение данных в представлении
view_arr[0] = 10

# Вывод измененного представления и исходного массива
print("Измененное представление:", view_arr)
print("Исходный массив:", arr)

# Глубокое копирование массива
deep_copy_arr = arr.copy()

# Изменение данных в глубокой копии
deep_copy_arr[0] = 100

# Вывод измененной глубокой копии и исходного массива
print("Измененная глубокая копия:", deep_copy_arr)
print("Исходный массив:", arr)

В данном примере мы создаем массив с помощью Numpy, затем создаем представление массива через срез и изменяем данные в этом представлении. После этого мы создаем глубокую копию массива и также изменяем данные в ней. Вывод на экран показывает, что изменения в представлении влияют на исходный массив, в то время как изменения в глубокой копии не затрагивают исходный массив.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Генерация случайных чисел Python
  2. Контроль точности вывода чисел
  3. Основные методы NumPy
  4. Работа с YAML в Python
  5. Многострочные комментарии в Python
  6. Дефолтные параметры в Python
  7. Colorama: окрашивание текста в Python
  8. Оператор assert в Python
  9. Разработка Telegram-ботов
  10. Использование обратной косой черты в f-строках
  11. Моржовый оператор в Python 3.8
  12. Progress с библиотекой tqdm
  13. Группы исключений в Python
  14. Циклы for в Python
  15. История Python
  16. Поиск уникальных и повторяющихся элементов
  17. Операции с массивами в NumPy
  18. Генератор надежных паролей
  19. Пространство имен в Python
  20. Комментарии в Python
  21. Преобразование генераторов в циклы
  22. *args и **kwargs в Python
  23. Введение в PyTorch
  24. Вычисление натурального логарифма в NumPy
  25. Работа с итераторами в Python
  26. Обработка StopIteration в Python
  27. Проверка элемента в множестве.
  28. Преобразование в float
  29. Оператор continue в Python
  30. Регулярные выражения: метод match
  31. Автоматизация скриптов на AWS Lightsail.
  32. Обмен значений переменных в Python
  33. Просмотр файла в Jupyter Noteboo
  34. Работа с комплексными числами в Python
  35. Быстрый поиск кода
  36. Метод classmethod
  37. Оператор «not» в Python
  38. Генераторы по генератору
  39. Создание вкладок с TKinter
  40. Установка и использование Virtualenv
  41. Python: Фильтрация списков с помощью filter()
  42. Перебор элементов списка в Python
  43. Генерация QR-кодов с Python
  44. Экспорт данных с помощью writefile
  45. Автоматизация с Python
  46. Сортировка HTML-элементов

Marketello читают маркетологи из крутых компаний