мой код работает, если row
не имеет повторяющихся чисел.но я не могу найти способ справиться с последовательными числами, которые одинаковы.в матрице CSR, если число совпадает с номером следующего числа, строка должна иметь все нули.
import numpy as np
count = 0
row_numb = -1
data = [1,1,1,2,2,4,5,5,5]
col_index = [0,1,4,1,2,3,2,3,4]
row = [0,3,5,5,6,9] # consecutive 5's are a problem
A = np.zeros((5,5))
for i, col in zip(data,col_index):
if count in row[:-1]:
row_numb += 1
A[row_numb][col] = i
count += 1
print(A)
с моим кодом A будет выглядеть так:
[[1. 1. 0. 0. 1.]
[0. 2. 2. 0. 0.]
[0. 0. 0. 4. 0.]
[0. 0. 5. 5. 5.]
[0. 0. 0. 0. 0.]]
, ноправильный вывод должен иметь индекс строки 2, равный нулю, а остальные сдвинуты вниз на 1 строку.который будет выглядеть так:
[[1. 1. 0. 0. 1.]
[0. 2. 2. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 4. 0.]
[0. 0. 5. 5. 5.]]