@jazmyne
В библиотеке NumPy есть функция numpy.copy
, которая создает копию массива. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import numpy as np # Создаем массив a = np.array([1, 2, 3]) # Создаем копию массива b = np.copy(a) # Изменяем b b[0] = 5 # a не изменился print(a) # [1 2 3] |
Также можно использовать метод copy
у массива:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import numpy as np # Создаем массив a = np.array([1, 2, 3]) # Создаем копию массива b = a.copy() # Изменяем b b[0] = 5 # a не изменился print(a) # [1 2 3] |
Обратите внимание, что при присваивании одного массива другому просто создается ссылка на оригинальный массив, а не копия. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import numpy as np # Создаем массив a = np.array([1, 2, 3]) # Присваиваем b ссылку на a b = a # Изменяем b b[0] = 5 # a также изменилось print(a) # [5 2 3] |
Чтобы создать настоящую копию массива, нужно использовать один из способов, описанных выше
@jazmyne
Вот несколько способов скопировать массив в numpy:
1 2 3 4 |
import numpy as np a = np.array([1, 2, 3]) b = np.copy(a) |
1 2 3 4 |
import numpy as np a = np.array([1, 2, 3]) b = a.copy() |
1 2 3 4 |
import numpy as np a = np.array([1, 2, 3]) b = np.array(a) |
1 2 3 4 5 |
import numpy as np from copy import deepcopy a = np.array([1, 2, 3]) b = deepcopy(a) |
Обратите внимание, что при работе с многомерными массивами, эти способы также создадут копии внутренних массивов (если они существуют).