Метод 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)

В этом примере:

  1. Сначала вызовите метод copy() массива a, чтобы создать копию подмассива и присвоить ее переменной b.
  2. Во-вторых, измените элемент с индексом [0,0] массива b, поскольку оба массива независимы, изменение не влияет на массив a.
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *