python中通过试用None增加原始数组的维度,增加的维度取决于None出现的位置。
例如对于一维数组t而言
t = np.arange(5)
t
tn2 = t[:,None]
tn1 = t[None,:]
print(t)
print(tn2)
print(tn1)
输出为
[0 1 2 3 4]
[[0]
[1]
[2]
[3]
[4]]
[[0 1 2 3 4]]
这里tn2是代表将原数组t的第二维变为None数组,也就是每一列(例如[0])后面其实有一个[]的元素,或者理解为在axis=1的方向加入一个None数组。
tn1代表将原数组的第一维变为None数组,也就是在上一行有一个[]元素,或者理解为在axis=0的方向加入一个None数组。和上面不同的是,这里存在axis的替换,即N的出现,会使原始axis自动+1平移。原来axis=0 对应的5自动顺延到 axis=1 的方向去,即axis=1 的方向为5.具体实例如下:
print(t.shape)
print(tn2.shape)
print(tn1.shape)
(5,)
(5, 1)
(1, 5)
插入None有时候是为了让不同维度的数据之间可以进行计算。
比如上面两个数组之间无法进行计算,但是在补充了一个none进行维度填充之后,就可以进行计算了。
但是下面的图就可以顺利的进行计算了。