Меня смущают следующие два кода:
1-й код: изменения отражаются в обоих массивах
import numpy as nm
ab=nm.arange(10)
ba=ab
ba[0]=99
print(ba)
print (ab)
Вывод:
ba=[99 1 2 3 4 5 6 7 8 9]
ab=[99 1 2 3 4 5 6 7 8 9]
2-й код: измененияНЕ отражается в обоих массивах
import numpy as nm
ab=nm.arange(10)
ba=ab
ba=ab-ab
print(ba)
print(ab)
Вывод:
ba=[0 0 0 0 0 0 0 0 0 0]
ab=[0 1 2 3 4 5 6 7 8 9]
Кто-нибудь может объяснить это?Я хочу понять, почему это происходит?Я вижу, что во втором случае выделен новый адрес, но почему бы не перезаписать данные, как в первом случае?