我用numpy.array()处理'list'的时候怎么处理?

How to deal with this when I use numpy.array() to deal with 'list'?

import cv2
import numpy

list_pixel=[]
list_label=[]
for i in range(0,10):
    for j in range(0,10):
        list_pixel.append(cv2.imread("C:\Users\kimcho\Desktop\testdata\testdata_"+str(i)+"_0"+str(j)+".png",0))
        list_label.append(i)
    j=0
list_pixel.pop(0)
list_label.pop(0)
list_pixel=numpy.array(list_pixel)
print(list_pixel)
print(list_pixel.shape)
print(list_pixel[0].shape)

用numpy.array()处理'list'怎么办?我想模仿keras.But做数据集,做的数据集不满足me.I 想让它像 keras 一样工作,return 一个像这样的值:

它可以return一个值(60000,28,28)

但是对于我的数据集,它只能return这样:

只有return一个值(99,)——我得到了99张图片,我想将它们的像素加载到list_pixel

这是我的代码:

希望有人能帮我解决这个问题problem.Deeply谢谢!!!

使用 cv2.imread 时,您已经将图像加载为 numpy 数组。

一个简单的方法如下:

import cv2
import numpy as np

list_label = np.arange(0, 10)
path = "C:\Users\kimcho\Desktop\testdata\testdata_{0}_0{1}.png"
list_pixel = np.array([
    cv2.imread(path.format(i, j), 0) for i in range(0, 10)
    for j in range(0, 10)
])

让我们在一个简单的场景中尝试一下:我们假设只有一张尺寸为 28x28 的图像,比如这张:

假设它在路径 my/path/image.png.

import cv2
import numpy as np

list_label = np.arange(0, 10)
path = "my/path/image.png"
list_pixel = np.array([
    cv2.imread(path,0) for i in range(0, 10)
    for j in range(0, 10)
])

当 运行 list_pixel.shape 你得到 (100, 28, 28).