Курс 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. Magic Commands — улучшение работы с Python
  3. Вывод переменной и строки в Python
  4. Преобразование PowerPoint в PDF.
  5. Использование type hints
  6. Преобразование range в итератор
  7. Применение функции к каждому элементу списка
  8. Операторы присваивания в Python
  9. Регулярные выражения: метод match
  10. Работа с контекстными менеджерами
  11. Настройка вывода NumPy
  12. Генератор надежных паролей
  13. Сокращение ссылок с pyshorteners
  14. Оператор «or» в Python
  15. Округление банкира в Python
  16. Проверка дубликатов в Python
  17. Функция pow() — возвести число в степень
  18. Особенности ключей словаря в Python
  19. Разработка игры Pong с turtle
  20. PUT запрос для обновления данных
  21. Переопределение метода __and__
  22. Работа с пользовательским вводом
  23. Компиляция регулярных выражений
  24. Печать месячного календаря
  25. Функции range() в Python
  26. Методы сравнения множеств
  27. Генерация тестовых данных с factory_boy
  28. Модуль math: основные функции
  29. Склеивание строк без циклов
  30. История Python
  31. Объединение списков в Python
  32. Просмотр внешних файлов в %pycat
  33. Избегание изменяемых аргументов
  34. Работа с пакетами
  35. Оператор in и not in в Python
  36. Форматирование строк в Python
  37. Python defaultdict добавление ключа
  38. Удаление знаков препинания в Python
  39. Метод ne для сравнения объектов
  40. Расширение информации об ошибке в Python
  41. Отступы в Python
  42. Установка пакетов с помощью pip
  43. Проверка условий: all и any
  44. Python и Монти Пайтон
  45. Исключение NotImplementedError
  46. Метод enumerate() в Python

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