一、numpy.array 增加维度

import numpy as np 

a = np.array([1, 2, 3]) 
print(a)
#输出
array([1, 2, 3]) 

print(a[None])
#输出
array([[1, 2, 3]])

print(a[:,None])
#输出
array([[1], [2], [3]]) 

二、复制填充并升维

举例:把a的shape从(10,10)变成(5,10,10)

np.expand_dims(a,0).repeat(1000,axis=0)

    ⚠️ expand_dims表示增加一个维度,上式增加在a的0维度。

         repeat代表重复的次数,axis代表在哪个维度进行重复,注意index从零开始,-1是增加在最后一维。 

三、压缩冗余维度

在数组中会存在很多轴只有1维的情况,使用squeeze函数来压缩维度。

import numpy as np

b = np.array([[[[1],[2]],[[3],[4]]]])
b.shape

# 输出
(1L, 2L, 2L, 1L)

print(b)
# 输出
array([[[[1],
         [2]],

        [[3],
         [4]]]])

# 默认压缩所有为1的维度
b_squeeze = b.squeeze()
b_squeeze.shape
# 输出
(2L, 2L)   

# 调用array实例的方法,axis表示在哪个轴进行压缩,0为第一个维度。
b_squeeze0 = b.squeeze(axis=0)  
b_squeeze0.shape
>>>(2L, 2L, 1L)

# 调用numpy的方法
b_squeeze3 = np.squeeze(b, axis=3)   
b_squeeze3.shape
>>>(1L, 2L, 2L)

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐