Курс 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. Список переменных в Python
  3. Перевернуть список в Python
  4. Функция rsplit() в Python
  5. Определение размера папок в Python
  6. Управление памятью в Python
  7. Методы работы со строками в Python
  8. Работа с типами данных в Python с помощью pydantic.
  9. Python Поверхностное Копирование
  10. Оператор in для проверки наличия элемента
  11. Функции map, filter, reduce
  12. Работа с исключениями в Python
  13. Извлечение аудио из видео
  14. Передача аргументов в Python
  15. Использование метода lower()
  16. Добавление вложенных списков
  17. Переворот строки
  18. split() — разделение строки
  19. Удаление дубликатов из списка с помощью dict.fromkeys
  20. Инициализация переменных
  21. Курсы Яндекс Практикум
  22. Создание namedtuple из словаря
  23. Определение индекса элемента списка
  24. Итераторы в Python
  25. Измерение времени выполнения кода
  26. Пропуск начальных строк с помощью dropwhile()
  27. Извлечение новостей с помощью newspaper3k
  28. Непрерывная проверка в Python
  29. Порядок операций в Python
  30. Работа с JSON данными в Python
  31. Метод join для объединения строк
  32. Регистрация на хакатоне
  33. Проблемы с dict в Python
  34. Создание новой даты в Python
  35. Работа с датой и временем в Python
  36. Отправка HTTP-запросов с User-Agent
  37. Обработка исключений в Python 3
  38. Проверка строки на палиндром
  39. Метод join() для объединения элементов
  40. Декораторы в Python
  41. Замена текста с re.sub()
  42. Метод getitem для доступа к элементам последовательности
  43. Работа с файлами в Python
  44. Пересечение списков с использованием множеств
  45. Оценка точности модели
  46. Метод округления чисел

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