我希望连接两个形状为(100,3) and (100,7)
的numpy数组,以获得(100,10)
矩阵。
我已尝试使用hstack, concatenate
,但只收到ValueError: all the int arrays must have same number of dimensions
在如下的虚拟示例中,它可以工作......
x=np.arange(30).reshape(10,3)
y=np.arange(20).reshape(10,2)
np.concatenate((x,y), axis=1)
更新1:
我已经使用sklearn的预处理模块(RobustScaler和OneHotEncoder)创建了前两个指标。
更新2:
使用scipy.sparse.hstack时它可以工作,但为什么
答案 0 :(得分:0)
如果你想垂直连接它axis
必须等于0.这在the doc for concatenate中有解释。
在这个链接中我们有这个例子:
a = np.array([[1,2],[3,4]])
b = np.array([[5,6]])
np.concatenate((a,b),axis = 0)
array([[1, 2],
[3, 4],
[5, 6]])
np.concatenate((a,b.T),axis = 1)
array([[1, 2, 5],
[3, 4, 6]])
答案 1 :(得分:0)
这对我来说非常好:
import numpy as np
x=np.arange(100 * 3).reshape(100,3)
y=np.arange(100 * 7).reshape(100,7)
np.hstack((x,y)).shape # (100, 10)
答案 2 :(得分:0)
稀疏hstack加入coo
属性并从中构建一个新的coo
稀疏矩阵。 numpy hstack对不同的稀疏结构一无所知。为了进一步解释这一点,我必须解释稀疏构造,并引用各自的功能。