Учебник по NumPy

ГЛАВНАЯ Введение в NumPy Начало работы с NumPy NumPy Создание массивов Индексация массива NumPy Нарезка массива NumPy Типы данных NumPy Копирование NumPy против просмотра Форма массива NumPy Изменение формы массива NumPy Итерация массива NumPy Объединение массивов NumPy Разделение массива NumPy Поиск массива NumPy Сортировка массива NumPy Фильтр массива NumPy

NumPy Случайный

Случайное вступление Распределение данных Случайная перестановка Морской модуль Нормальное распределение Биномиальное распределение Распределение рыбы Равномерное распределение Логистическая дистрибуция Полиномиальное распределение Экспоненциальное распределение Распределение площади Чи Рэлеевское распределение Распределение Парето Распределение Zipf

NumPy ufunc

Введение ufunc Создать функцию ufunc Простая арифметика ufunc Округление десятичных знаков Журналы UFUNC ufunc Суммирование продукты ufunc Отличия ufunc ufunc Поиск LCM ufunc Поиск НОД ufunc Тригонометрический ufunc Гиперболический ufunc набор операций

Викторина/Упражнения

Викторина NumPy NumPy-упражнения

Копирование массива NumPy и просмотр


Разница между копированием и просмотром

Основное различие между копией и представлением массива заключается в том, что копия — это новый массив, а представление — просто представление исходного массива.

Копия владеет данными, и любые изменения, внесенные в копию, не повлияют на исходный массив, а любые изменения, внесенные в исходный массив, не повлияют на копию.

Представление не владеет данными, и любые изменения, внесенные в представление, повлияют на исходный массив, а любые изменения, внесенные в исходный массив, повлияют на представление.


КОПИРОВАТЬ:

Пример

Сделайте копию, измените исходный массив и отобразите оба массива:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 42

print(arr)
print(x)

На копию НЕ ДОЛЖНЫ влиять изменения, внесенные в исходный массив.


ПОСМОТРЕТЬ:

Пример

Создайте представление, измените исходный массив и отобразите оба массива:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 42

print(arr)
print(x)

На представление ДОЛЖНЫ влиять изменения, внесенные в исходный массив.

Внесите изменения в ВИД:

Пример

Создайте представление, измените представление и отобразите оба массива:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
x[0] = 31

print(arr)
print(x)

Исходный массив ДОЛЖЕН быть затронут изменениями, внесенными в представление.



Проверьте, владеет ли массив данными

Как упоминалось выше, копии владеют данными, а представления не владеют данными, но как мы можем это проверить?

Каждый массив NumPy имеет атрибут base, который возвращается, Noneесли массив владеет данными.

В противном случае base  атрибут ссылается на исходный объект.

Пример

Выведите значение базового атрибута, чтобы проверить, владеет ли массив своими данными или нет:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

x = arr.copy()
y = arr.view()

print(x.base)
print(y.base)

Копия возвращается None.
Представление возвращает исходный массив.


Проверьте себя с помощью упражнений

Упражнение:

Используйте правильный метод для создания копии массива.

arr = np.array([1, 2, 3, 4, 5])

x = arr.