scipy.sparse.hstack [ValueError: блоки должны быть двумерными] - PullRequest
0 голосов
/ 19 апреля 2019

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

но я переименую этот код в мой предыдущий код.

1 Ответ

1 голос
/ 19 апреля 2019

проблема в списке стека, по крайней мере, содержит разреженный массив.

другими словами, код

c = sp.hstack([a, b, c, d, ...])

в [a, b, c, d, ...] должен по крайней мере содержать разреженный массив.

если в списке нет разреженного массива, вы можете попробовать:

c = sp.hstack([sp.csr_matrix(a), b, c, d, ...])

и все работает!

...