Python:Numpy对未知形状的np数组最后几个维度进行操作

做机器学习的时候某个需求不确定输入的形状是类似(224, 224, 3)还是(1000, 224, 224, 3),分别代表了单张图像和一批图像,想对它/它们进行切片只取每一张图像左上角的(112, 112, 3)部分。使用…可以用来代表未知形状数组前面的维度,效果有点类似于索引中的-1,进行倒序处理。代码如下:

import numpy as np
img = np.empty([224, 224, 3])
img = img[..., :112, :112, :]
print(img.shape) #(112, 112, 3)
img = np.empty([1000, 224, 224, 3])
img = img[..., :112, :112, :]
print(img.shape) #(1000, 112, 112, 3)
#甚至更多维度也无所谓
img = np.empty([10, 10, 224, 224, 3])
img = img[..., :112, :112, :]
print(img.shape) #(10, 10, 112, 112, 3)

你可能感兴趣的:(Python,python,机器学习,numpy)