我有一个numpy数组,其行大小不同
a = np.array([[1,2,3,4,5],[1,2,3],[1]])
我希望将这段文本转化为一个稠密的矩阵(固定的n x m大小,没有可变行)。到目前为止,我尝试了类似于以下内容的东西:
size = (len(a),5)
result = np.zeros(size)
result[[0],[len(a[0])]]=a[0]
但是我收到了一个错误信息,告诉我:
形状不匹配:值数组的形状(5,)无法广播到形状为(1,)的索引结果
我还尝试使用np.pad进行填充,但根据numpy.pad的文档,似乎需要在pad_width中指定行的先前大小(这是变量的,用-1、0和最大行大小都产生了错误)。
我知道可以像这里所示那样对每一行进行填充,但我需要对更大的数据数组进行填充。
如果有人能够回答我的问题,我将非常高兴知道它。
a=np.array([[1,2,3,4,5],[1,2,3],[1]])
的预期输出是什么? - Divakarresult[i,:len(a[i])]=a[i]
这个语句是有效的。你需要在第二维使用切片(即:
)。你的列表数组基本上与列表的列表相同。无论如何,你都将迭代这些子列表。 - hpaulj