Два массива становятся одинаковыми, даже если над каждым выполняются разные операции.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Два массива становятся одинаковыми, даже если над каждым выполняются разные операции.

Сообщение Anonymous »

Если я определяю два массива в numpy с помощью np.zeros() в одной строке, операция над одним применяется и к другому.
У меня есть следующий простой код

Код: Выделить всё

import numpy as np

a=b=np.zeros(3)

for i in range(len(b)):
a[i]=i
b[i]=2*i
print(a)
print(b)
Теперь я ожидаю следующего:
a=[0,1,2]
b=[0,2,4]
Вместо этого я получаю следующее:
a=[0,2,4]
b=[0,2,4]
Почему это? Если я это сделаю, этого не произойдет

Код: Выделить всё

a=np.zeros(3)
b=np.zeros(3)
так что это, конечно, как-то связано с приравниванием a и b в начале. Но как первая строка влияет на операции, выполняемые позже?
Этого не происходит, если у меня есть только числа, поэтому

Код: Выделить всё

a=b=0
a=1
b=2
print(a,b)
фактически возвращает (1,2), как и ожидалось.
Так что не разумно ли приравнивать эти два значения при первоначальном определении их формы или я что-то упускаю?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ne-on-each
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»