Курс 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. Создание задания в Cron
  2. Удаление знаков препинания в Python
  3. Извлечение аудио из видео
  4. Введение в PyTorch
  5. Изучение объектов с помощью dir()
  6. Импорт объектов из модулей
  7. Работа с f-строками 2.0
  8. Бесконечная проверка в Python
  9. Условные выражения в Python
  10. Работа с URL-адресами в Python
  11. Игра Виселица на Python
  12. Функция map() в Python
  13. Удаление символа из строки
  14. Извлечение чисел из текста
  15. Генераторы в Python
  16. Генераторы в Python
  17. Группы исключений в Python
  18. Блок else в Python
  19. Метод сравнения объектов в Python
  20. Использование функции enumerate()
  21. Поиск повторов в списке
  22. PUT запрос для обновления данных
  23. Применение функции к списку
  24. Перезагрузка оператора в Python
  25. Кортеж в Python: создание, доступ, изменение
  26. Объединение Python и Shell
  27. Сложные типы данных в Python
  28. Печать календаря в Python
  29. Глобальные переменные в Python
  30. Изменение объектов в Python
  31. Работа со словарями в Python
  32. Управление ресурсами с контекстными менеджерами
  33. Работа с буфером обмена на Python
  34. Замеры производительности в Python
  35. Непрерывная проверка в Python
  36. Создание словарей с defaultdict
  37. Получение комбинаций в Python
  38. Метод __int__ в Python
  39. Транспонирование 2D-массива с помощью zip
  40. Создание директории в Python
  41. Метод clear для коллекций
  42. F-строки в Python 3.8
  43. Извлечение аудио из видео
  44. Капитализация строк

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