Курс 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 union() функция — объединение множеств
  2. Проверка типа данных
  3. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  4. Измерение времени выполнения кода
  5. Асинхронное программирование с asyncio
  6. Управление контекстом с помощью декоратора contextmanager
  7. Определение объема памяти объекта
  8. Рациональные числа в Python
  9. Импорт модулей в Python 3.12
  10. Многострочные строки в Python
  11. Создание словаря в Python
  12. Работа с кортежами в Python
  13. Проверка кортежей.
  14. Методы list в Python
  15. Модуль math: константы π и e
  16. Библиотека Rich: форматирование текста
  17. Библиотека itertools: объединение списков
  18. Python: отсутствие точек с запятыми
  19. Добавление кнопки в tkinter
  20. Аннотации типов в Python
  21. Оператор is в Python
  22. Управление виртуальными средами в Python
  23. Форматирование строк с помощью f-строк
  24. PUT запрос для обновления данных
  25. Блок try…finally в Python
  26. Оператор объединения словарей
  27. Работа с deque из collections
  28. UserString в Python
  29. CSV строка разделение в Python
  30. Преобразование списков в словарь
  31. Форматирование строк в Python.
  32. Блок try-except-else
  33. Удаление элемента по индексу
  34. Символ подчеркивания в Python
  35. Оператор «not» в Python
  36. Поиск с библиотекой Google
  37. SciPy: широкий функционал для математических операций
  38. Разделение строки в Python
  39. Операции с кортежами
  40. Работа с f-строками 2.0
  41. Кортеж в Python: создание, доступ, изменение
  42. Наиболее частотные элементы с помощью Counter
  43. Определение размера папок в Python
  44. Импорт с альтернативным именем
  45. Оператор «or» в Python
  46. Метод join() для объединения элементов строки

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