Вытягивание с копией в NumPy
Метод flatten строит
новый одномерный массив и копирует
в него все элементы. Изменения в
этой копии не затрагивают исходную
таблицу.
Создадим таблицу, вытянем её методом
flatten и изменим первую ячейку
ряда. Исходник останется прежним:
import numpy as np
table = np.array([[1, 2, 3], [4, 5, 6]])
row = table.flatten()
row[0] = 99
print(table) # выведет [[1 2 3] [4 5 6]]
print(row) # выведет [99 2 3 4 5 6]
Функция ravel часто возвращает
вид на те же данные. Сравним: после
ravel таблица меняется, после
flatten - нет:
import numpy as np
table = np.array([[1, 2], [3, 4]])
by_ravel = np.ravel(table)
by_ravel[0] = 77
print(table) # выведет [[77 2] [ 3 4]]
table = np.array([[1, 2], [3, 4]])
by_flat = table.flatten()
by_flat[0] = 77
print(table) # выведет [[1 2] [3 4]]
Создайте таблицу [[9, 8], [7, 6]],
получите из неё одномерную копию,
запишите 100 в первую ячейку
копии и выведите исходную таблицу.
Создайте таблицу из двух строк по три нуля, получите из неё ряд с копированием и выведите форму результата.