присвоение значений матрице в python - PullRequest
0 голосов
/ 16 ноября 2018

Я хочу сохранить это:

for i in range(len(cpi)):
    print((cf[:i+1] / cpi[i]).astype(int))

в матрицу. Я попробовал это:

payment = np.zeros((len(cpi), len(cpi)))
for i in range(len(cpi)):
    payment = cf[:i+1] / cpi[i]).astype(int)

Но это дает мне неправильную матрицу, которая выглядит следующим образом:

[[0 1 0 ..., 1 0 3]
 [2 9 2 ..., 4 0 4]
 [4 0 8 ..., 9 6 3]
 ..., 
 [0 0 0 ..., 0 0 0]
 [1 3 0 ..., 1 1 1]
 [0 3 0 ..., 1 0 0]]

Когда вывод будет таким:

[[0 1 0 1 1 1 0 5 1 0 2]]
[[0 0 0 0 0 0 0 2 0 0 1]
 [1 3 1 0 0 1 1 1 1 0 1]]
[[0 0 0 0 0 0 0 1 0 0 0]
 [0 2 0 0 0 0 0 0 0 0 0]
 [1 0 2 0 2 1 1 0 2 1 0]]
[[0 1 0 1 1 1 0 5 1 0 2]
 [1 6 1 0 0 1 1 1 2 0 2]

Обратите внимание, что не все элементы являются лишь некоторыми из них.

1 Ответ

0 голосов
/ 16 ноября 2018

Проблема в том, что вы присваиваете новое значение переменной платежа каждый раз, когда делаете цикл, когда вам действительно нужно просто добавить его. Например (не проверено):

payment=[]
for i in range(len(cpi)):
    payment.append((cf[:i+1] / cpi[i]).astype(int))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...