我是新到这个网站,没有足够的声誉作出评论后,下面的帖子,所以我希望通过介绍这里,我可以得到一些帮助。你知道吗
我当前的输入形状如下:
[array([[0.1,0.2], [0.3, 0.4], [0.5, 0.6]])]
如果可能的话:
[[[0.1,0.2], [0.3, 0.4], [0.5, 0.6]]]
我收到了同样的错误和同样的问题:
ValueError: blocks must be 2-D
基于本文中的解决方案,我想问的是,有没有一种方法不将密集数组转换为coo_矩阵。由于转换它将需要很多过程,所以有没有一种方法只是以某种方式将其更改为二维,然后使用hstack?你知道吗
以下是帖子:
scipy.sparse.hstack(([1], [2])) -> "ValueError: blocks must be 2-D". Why?
显示包含数组的列表:
只需将其包装在
np.array
中即可生成一个3d数组:numpy
hstack
生成二维数组:也就是说,它接受1元素列表并将其与其他元素连接,返回元素本身。你知道吗
我不明白你为什么偏袒于稀疏
hstack
。你知道吗在稀疏hstack中使用
alist
的正确方法:sparse.coo_matrix(alist)
不起作用,因为如上所述,从中生成数组会生成3d数组。所以我们必须把它从列表中去掉,alist[0]
。然后生成一个稀疏矩阵,然后将其传递给bmat
进行进一步处理。你知道吗我想我在另一个问题中描述过,
sparse.hstack
通过连接输入数组的coo
属性来工作,在这个过程中生成一个新的coo
矩阵。因此,即使我们可以将某种类型的列表或密集数组传递给hstack
,它仍然必须从每个元素中生成一个coo
矩阵。你知道吗如果您想要一个更快速的密集
concatenate
版本,就不要使用sparse.hstack
。如果您已经有一些大型稀疏矩阵,并且希望将它们连接起来,或者可能添加密集的列或行,请使用它。更重要的是,它是一个方便的工具,用于从较小的片段构建大型稀疏矩阵。你知道吗相关问题 更多 >
编程相关推荐