numpy矩阵升维,拼接

当将两个列向量进行拼接时,可有如下两步

1.矩阵升维

原数据可能为列向量,如

a=np.arange(10)
a.shape

 (10,)

此时,需要用到矩阵的升维,

a[:,None].shape

此时,有

a[:,None].shape
 (10, 1)

也有如下方法

b=np.expand_dims(b,axis=1)#axis指定增加的维度
b=np.array([a])#先变成list再转换为np
b=b[...,np.newaxis]#直接用newaxis
b=np.reshape(b,(10,1))#用reshape定义

矩阵维度降低,可用 np.squeeze

c.shape
(10, 1, 2)

使用矩阵降维

np.squeeze(c, axis=(1,)).shape#其中,指定降低某个维度,该维度长度必须为1
 (10, 2)

2.矩阵拼接

进行矩阵拼接,可以用np.append,如下

np.append(a,b).shape
(20,)

可以用参数对拼接的维度进行控制

np.append(a,b,axis=1).shape
(10, 2)

到此,即可完成对期望的矩阵进行拼接的操作。

也可以用np.c_和np.r_

print(xx.ravel().shape)
print(np.c_[xx.ravel(), yy.ravel()].shape)
print(np.r_[xx.ravel(), yy.ravel()].shape)

分别为沿维度方向对矩阵进行拼接

(120263,)
(120263, 2)
(240526,)

也可使np.vstack进行操作,对矩阵纵方向进行拼接。

你可能感兴趣的:(numpy矩阵升维,拼接)