У меня есть словарь индексов, соответствующих ненулевым числам, и я хочу написать функцию, которая создает разреженный массив с ненулевыми элементами с заданными индексами, с нулями между ними.Пример:
{(0,0):2, (1,1):3}
будет выводить в следующий массив NumPy
([[2,0], [0,3]])
Какой самый простой способ преобразовать этот плотный словарь в разреженный массив?
Это должно работать, единственное, что вам нужно, вы должны знать размеры для вашей продукции.
import numpy as np d = {(0,0):2, (1,1):3} S = 2 table = np.zeros((S,S)) for k,v in d.items(): if d[k]: table[ k[0],k[1] ] = v print(table)