Я сделал похожий пост здесь .Теперь я пытаюсь обобщить то, что было сделано для всей матрицы чисел.
В частности, я хочу сделать это:
dates = []
dates.append(NDD_month[0])
for i in range(1,len(cpi)):
dates.append((dates[i-1] + 12 - number_of_payments[:i]) % 12)
print(dates)
, где number_of_payments
- это матрица типа <class 'list'>
.
Вот пример:
print(number_of_payments[:1])
- это
[array([[0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1]])]
После выполнения того, что я хочу, тогда
print(dates[:1])
Должно быть
[array([[8, 8, 7, 7, 6, 5, 4, 4, 11, 10, 10, 8]])]
или что-то в этом роде.
РЕДАКТИРОВАТЬ:
Вот пример того, как мои данные выглядят:
print(number_of_payments[:3])
Это дает мне это:
[
array(
[
[0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1]
]),
array(
[
[0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0],
[1, 3, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0]
]),
array(
[
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
[0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 2, 0, 2, 1, 1, 0, 2, 1, 0, 0]
])
]
print(NDD_month[:3])
Дает мне
[8, 7, 11]
Теперь для ответа я хочу сделать что-то подобное, что я делал в моем предыдущем посте, гдеУ меня было
dates = []
dates.append(NDD_month[0])
for i in range(1, len(first_payments)):
dates.append((dates[i-1] + 12 - first_payments[i-1]) % 12)
print(dates)
Это дало мне правильный вывод
[8 8 7 7 6 5 4 4 11 10 10 8]
Но теперь, когда у меня number_of_payments
является матрицей, мне нужно применить ту же логику к этим большим даннымсостав.Дайте мне знать, если это ясно. Редактировать 2:
Хорошо, это сложно объяснить, поэтому я собираюсь перейти к пошаговому примеру, у меня есть эти данные или матрица (number_of_payments), что бы это ни было в python:
[[0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1],
[0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0],
[1, 3, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0]]
У меня есть другой список или вектор, который называется NDD_month, первые три элемента:
[8, 7, 11]
Теперь для простоты скажем, у меня просто есть первая строка number_of_payments, т.е.
[0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1]
Далее, для простоты, скажем, у меня есть только первый элемент NDD_month, поэтому
8
Затем, чтобы получить ответ, который я ищу, я бы сделал это, чтобы Аврора Ван также дала хороший ответ, который был следующим
first_payments = number_of_payments[:1]
first_payments = first_payments[0][0]
dates = []
dates.append(NDD_month[0])
for i in range(1, len(first_payments)):
dates.append((dates[i-1] + 12 - first_payments[i-1]) % 12)
print(dates)
Это дает мне [8, 8, 7, 7, 6, 5, 4, 4, 11, 10, 10, 8]
.
Теперь мне нужно сделать то же самое, но для каждой строки в матрице и каждого элемента в векторе NDD_month.Я надеюсь, что это делает это намного более ясным.
Я думал, что это может сработать, но снова я новичок в python, и это не работает:
dates = []
for i in range(1,len(NDD_month)):
dates.append(NDD_month[i-1])
for j in range(1, len(NDD_month)):
dates.append((dates[j-1] + 12 - number_of_payments[i-1][j-1]) % 12)
print(dates)