У меня есть массив a
, определенный вне цикла for. b
- это переменная, которая должна быть равна a
внутри цикла. Я изменяю значения b
внутри цикла, который также изменяет a
. Почему/Как это происходит?Значения переменных внутри цикла for
>>> import numpy as np
>>> a = np.asarray(range(10))
>>> for i in range(5,7):
b = a #assign b to be equal to a
b[b<i]=0 #alter b
b[b>=i]=1
print a
Выход:
[0 0 0 0 0 1 1 1 1 1] #Unexpected!!
[0 0 0 0 0 0 0 0 0 0]
Почему a
изменяется, когда я явно не сделать это?
Поскольку 'a' является массивом Numpy, просто' b = a.copy() 'достаточно. –
Ограничено ли это только петлями? , когда я делаю a = 5 b = a b + = 1 print a. Вывод по-прежнему 5 –