Курс 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. Роль ключевого слова self
  2. Функции map, filter, reduce
  3. Автоматизация действий с Pyautogui
  4. Метод pos в Python
  5. Список методов и атрибутов
  6. Форматирование строк с помощью f-строк
  7. Поиск с библиотекой Google
  8. Разделение функций на этапы
  9. Инверсия списка и строки в Python
  10. Работа с множествами в Python
  11. Пустой оператор pass в Python
  12. Исправление ошибки NameError
  13. Загрузка постов Instagram
  14. Аргумент по умолчанию
  15. Очистка входных данных
  16. Определение объема памяти объекта
  17. Работа с файлами в Python
  18. Декораторы в Python
  19. Запуск Python из интерпретатора
  20. Работа с argparse
  21. Метод join для наборов
  22. Работа с географическими данными в Python
  23. Отладка утечек памяти в Python
  24. Ввод нескольких значений
  25. Возврат нескольких значений
  26. Работа с кортежами в Python
  27. Метод rsub в Python: расширение функциональности вычитания
  28. Вывод баннеров
  29. Модуль os в Python: работа с файлами
  30. Операторы присваивания в Python
  31. Метод ipow для возведения в степень
  32. Защита данных в Python
  33. Создание и использование ChainMap
  34. Переопределение метода
  35. Любовь к Python
  36. Нахождение разницы между списками в Python
  37. Возврат нескольких значений
  38. Отрицательные индексы списков
  39. Codecademy в Telegram
  40. Проверка типа данных
  41. Поиск подстроки в строке
  42. Операторы увеличения и уменьшения в Python
  43. Установка User-Agent в Python
  44. Очистка вывода в Python
  45. Работа с deque в Python
  46. Разделение строки с помощью re.split()
  47. Шаблоны и наследование в Flask
  48. Python: отсутствие точек с запятыми

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