np.newaxis
np.newaxis 的功能是增加新的维度,但是要注意 np.newaxis 放的位置不同,产生的矩阵形状也不同。
通常按照如下规则:
np.newaxis 放在哪个位置,就会给哪个位置增加维度
x[:, np.newaxis] ,放在后面,会给列上增加维度
x[np.newaxis, :] ,放在前面,会给行上增加维度
用途: 通常用它将一维的数据转换成一个矩阵,这样就可以与其他矩阵进行相乘。
例1:这里的 x 是一维数据,其 shape是 4,可以看到通过在列方向上增加新维度,变成了 4 x 1 的矩阵,也就是在 shape 的后面发生了变化。
x = np.array([1, 2, 3, 4])
print(x.shape)
x_add = x[:, np.newaxis]
print(x_add.shape)
print(x_add)
>>>
(4,)
(4, 1)
[[1]
[2]
[3]
[4]]
例2:通过在行方向上增加新的维度,变成了 1 x 4 的矩阵,也就是在 shape 的前面发生了变化。
x = np.array([1, 2, 3, 4])
print(x.shape)
x_add = x[np.newaxis, :]
print(x_add.shape)
print(x_add)
>>>
(4,)
(1, 4)
[[1 2 3 4]]
例3:给矩阵增加一个维度。
x = np.array([[1, 2, 3, 4], [2, 3, 4, 5]])
print(x.shape)
x_add = x[:, np.newaxis]
print(x_add)
print(x_add.shape)
>>>
(2, 4)
[[[1 2 3 4]]
[[2 3 4 5]]]
(2, 1, 4)
例四:取第三列并增加一个维度。
x = np.array([[1, 2, 3, 4], [2, 3, 4, 5], [6, 7, 8, 9]])
print(x.shape)
x_add = x[:, np.newaxis,2]
print(x_add)
print(x_add.shape)
标签:维度,shape,print,add,newaxis,np,Numpy
From: https://www.cnblogs.com/zhang-lunqi/p/16924620.html