Метод NumPy copy() в Python с примерами
Когда вы выполните нарезку массива, вы получите подмассив.
Что такое метод NumPy copy()?
Подмассив представляет собой представление исходного массива. Другими словами, если вы измените элементы в подмассиве, это изменение отразится в исходном массиве. Например:
import numpy as np a = np.array([ [1, 2, 3], [4, 5, 6] ]) b = a[0:, 0:2] print(b) b[0, 0] = 0 print(b) print(a)
Как это работает.
- Сначала создайте 2D-массив:
a = np.array([ [1, 2, 3], [4, 5, 6] ])
- Во-вторых, разрежьте массив a и присвойте подмассив переменной b:
b = a[0:, 0:2]
Переменная b:
[[1 2] [4 5]]
- В-третьих, измените элемент с индексом [0,0] в подмассиве b на ноль и отобразите переменную b:
b[0, 0] = 0 print(b)
[[0 2] [4 5]]
Поскольку b представляет собой представление массива a, изменение также отражается в массиве a:
print(a)
[[0 2 3] [4 5 6]]
Причина, по которой numpy создает представление вместо нового массива, заключается в том, что ему не нужно копировать данные, что повышает производительность.
Однако, если вам нужна копия массива, а не представление, вы можете использовать метод numpy copy() в Python. Например:
import numpy as np a = np.array([ [1, 2, 3], [4, 5, 6] ]) # make a copy b = a[0:, 0:2].copy() print(b) b[0, 0] = 0 print(b) print(a)
В этом примере:
- Сначала вызовите метод copy() массива a, чтобы создать копию подмассива и присвоить ее переменной b.
- Во-вторых, измените элемент с индексом [0,0] массива b, поскольку оба массива независимы, изменение не влияет на массив a.