我正在尝试通过 np.concat()
方法连接两个有效数组。
我的代码:
print X_train.shape, train_names.shape
X_train = np.concatenate([train_names,X_train], axis=0)
输出:
(3545, 93355) (3545, 692)
ValueError Traceback (most recent call last)
<ipython-input-58-59dc66874663> in <module>()
1 print X_train.shape, train_names.shape
----> 2 X_train = np.concatenate([train_names,X_train], axis=0)
ValueError: zero-dimensional arrays cannot be concatenated
如您所见,数组的形状对齐,但我仍然收到这个奇怪的错误。为什么?
编辑:我也尝试过 axis=1
。相同的结果
编辑 2:使用 .astype(np.float64)
等式数据类型。相同的结果。
最佳答案
将 np.concatenate
应用于 scipy
sparse
矩阵会产生此错误:
In [162]: from scipy import sparse
In [163]: x=sparse.eye(3)
In [164]: x
Out[164]:
<3x3 sparse matrix of type '<class 'numpy.float64'>'
with 3 stored elements (1 diagonals) in DIAgonal format>
In [165]: np.concatenate((x,x))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-165-0b67d0029ca6> in <module>()
----> 1 np.concatenate((x,x))
ValueError: zero-dimensional arrays cannot be concatenated
有 sparse
函数可以做到这一点:
In [168]: sparse.hstack((x,x)).A
Out[168]:
array([[ 1., 0., 0., 1., 0., 0.],
[ 0., 1., 0., 0., 1., 0.],
[ 0., 0., 1., 0., 0., 1.]])
In [169]: sparse.vstack((x,x)).A
Out[169]:
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.],
[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
关于python - NumPy:连接时出错 - 无法连接零维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36415811/