Срез на те же данные в NumPy
Фрагмент массива часто не копирует числа в новую память. Он указывает на те же ячейки, что и исходный ряд. Если изменить значение во фрагменте, оно изменится и в оригинале.
Создадим ряд, возьмём его середину и изменим одну ячейку во фрагменте. Затем выведем и фрагмент, и исходный ряд:
import numpy as np
temps = np.array([10, 20, 30, 40])
middle = temps[1:3]
middle[0] = 99
print(middle) # выведет [99 30]
print(temps) # выведет [10 99 30 40]
То же видно на другом примере. Создадим короткий ряд, возьмём первые две ячейки и запишем во вторую ячейку фрагмента новое число:
import numpy as np
scores = np.array([4, 5, 3])
head = scores[0:2]
head[1] = 50
print(head) # выведет [ 4 50]
print(scores) # выведет [ 4 50 3]
Создайте массив из четырёх чисел,
сохраните его две средние ячейки
в отдельную переменную, измените
первую ячейку этой переменной
на 0 и выведите исходный
массив.
Создайте массив из пяти последовательных
целых чисел, возьмите его хвост
из трёх элементов, увеличьте последнюю
ячейку хвоста на 100 и выведите
исходный массив.
Создайте массив из трёх дробных чисел,
получите фрагмент из двух первых
ячеек, запишите 1.0 во вторую
ячейку фрагмента и выведите оба
массива.