在形状为 (45, 2040, 5200,3) 的 numpy.ndarray 上迭代 45 次无法将 int 连接到元组

Iterate 45 times over a numpy.ndarray of shape (45, 2040, 5200,3) can't concatenate int to tuple

我正在尝试迭代 45 个图像数据,其形状为 (2040,5200) 和 3 个颜色通道。 numpy 数组数据的形状为 (45,2040,5200,3)。我正在尝试将所有 45 张图像的 (2040,5200) 值设为 np.zeros

marker_image=[]
i=0

for i in enumerate(data):
    imm = np.zeros(data[i].shape[:2],dtype=np.uint8)
    #marker_image.npbytes
    marker_image.append(imm)
    i+1 

收到此错误'can only concatenate tuple (not "int") to tuple'

如何解决这个问题?

您坚持的错误与 numpylist 或其他任何东西无关,而只是您使用 enumerate 的方式。这个函数接受一个可迭代的值,例如 listnumpy 数组和类似的变量,为您提供一个元组。元组的第一个元素是值的索引,第二个值是可迭代变量中的元素。因此,i 是一个元组,而您正试图在一个不可接受的元组上调用 i += 1enumerate 通常这样使用:

marker_image=[]
i=0

for index, value in enumerate(data):
    imm = np.zeros(data[i].shape[:2],dtype=np.uint8)
    #marker_image.npbytes
    marker_image.append(imm)
    # What you want to do in the rest code