Я пытаюсь следующий код в Python, используя Jupyter Notebooks:
import numpy as np
i=2
j=0
basis = np.matrix([False,False,True,True,True])
basis_mod = basis
print "basis"
print basis
print "basis_mod"
print basis_mod
basis_mod[:,i] = False
print "basis"
print basis
print "basis_mod"
print basis_mod
basis_mod[:,j] = True
print "basis"
print basis
print "basis_mod"
print basis_mod
Вывод на консоль / что напечатано:
basis
[[False False True True True]]
basis_mod
[[False False True True True]]
basis
[[False False False True True]]
basis_mod
[[False False False True True]]
basis
[[ True False False True True]]
basis_mod
[[ True False False True True]]
Мой вопрос: почему переменнаяизменение базы, когда я делаю изменения в base_modified?Чтобы было ясно, я изменяю переменную base_mod, поэтому я ожидаю, что базовая переменная не изменится.Однако, когда я печатаю базовую переменную, она меняется на переменную base_mod.
Обратите внимание, что если я изменю код на:
import numpy as np
i=2
j=0
basis = np.matrix([False,False,True,True,True])
basis_mod = np.matrix([False,False,True,True,True])
print "basis"
print basis
print "basis_mod"
print basis_mod
basis_mod[:,i] = False
print "basis"
print basis
print "basis_mod"
print basis_mod
basis_mod[:,j] = True
print "basis"
print basis
print "basis_mod"
print basis_mod
Распечаткакак и ожидалось:
basis
[[False False True True True]]
basis_mod
[[False False True True True]]
basis
[[False False True True True]]
basis_mod
[[False False False True True]]
basis
[[False False True True True]]
basis_mod
[[ True False False True True]]
Поэтому я подозреваю, что проблема связана со строкой Base_MOD = БД, но я не понимаю, почему.
Любая помощь очень ценится!Это в основном портит алгоритм, который я пытаюсь кодировать.