a
和b
是第二个numpy数组,我想垂直堆叠并压缩为稀疏数组。
我只是使用:
c = sp.hstack([a, b])
但是它抛出错误:
~/anaconda3/lib/python3.6/site-packages/scipy/sparse/construct.py in hstack(blocks, format, dtype)
462
463 """
--> 464 return bmat([blocks], format=format, dtype=dtype)
465
466
~/anaconda3/lib/python3.6/site-packages/scipy/sparse/construct.py in bmat(blocks, format, dtype)
545
546 if blocks.ndim != 2:
--> 547 raise ValueError('blocks must be 2-D')
548
549 M,N = blocks.shape
ValueError: blocks must be 2-D
但是我记得这段代码可以在我之前的代码中使用。
答案 0 :(得分:1)
问题在于堆栈列表中至少包含一个稀疏数组。
换句话说,代码
c = sp.hstack([a, b, c, d, ...])
[a, b, c, d, ...]
中的必须至少包含一个稀疏数组。
如果列表不包含稀疏数组,则可以尝试:
c = sp.hstack([sp.csr_matrix(a), b, c, d, ...])
它有效!