Курс 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. Условное добавление элементов в список
  2. Приоритет операций в Python
  3. Работа с модулем glob в Python
  4. Создание спинбокса в tkinter
  5. Официальный канал Python в Telegram
  6. Подсчет элементов в Python
  7. Мониторинг памяти с Pympler
  8. Проверка условий в Python
  9. Красивый вывод списка
  10. Группы исключений в Python
  11. Отображение HTML кода в Python
  12. Генераторы в Python
  13. Метод __index__ в Python
  14. Импорт классов из другого файла
  15. Основы работы с базами данных в Python
  16. Работа с Requests для HTTP-запросов
  17. Переменная с нижним подчеркиванием
  18. Работа с кортежами
  19. Отладчик pdb: начало работы
  20. Оболочка Python
  21. Combobox в Tkinter
  22. Оператор space-invader
  23. Создание и обучение модели с Keras
  24. Описание скриптов в README
  25. Синтаксис переменных цикла в Python
  26. Игра Виселица на Python
  27. Метод remove() для удаления элемента из списка
  28. Объединение строк с помощью метода join
  29. Оператор «моржа» (Walrus Operator)
  30. Проверка типов с использованием isinstance
  31. Отслеживание прогресса с tqdm
  32. Получение списка кортежей из словаря
  33. Ветвление выражения в Python
  34. Объединение словарей в Python 3.5+
  35. Вывод сложных структур данных с помощью pprint
  36. Функция reversed() в Python
  37. Обновление данных через PUT запрос
  38. Метод rmatmul для пользовательских матриц
  39. Сравнение объектов в Python
  40. Enum в Python
  41. Изменения в обработке логических значений
  42. Добавление элементов в список
  43. Работа с прокси в Python
  44. Использование функции product
  45. Проверка дублей в списке.
  46. Метод rmatmul для обратного матричного умножения

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