我有1,000张RGB图像(64X64),我想将它们转换为一个(m,n)数组。
我使用这个:
代码或方法
import numpy as np
from skdata.mnist.views import OfficialImageClassification
from matplotlib import pyplot as plt
from PIL import Image
import glob
import cv2
x_data = np.array( [np.array(cv2.imread(imagePath[i])) for i in range(len(imagePath))] )
print x_data.shape
这让我得到了:(1000, 64, 64, 3)
现在,如果我执行以下操作:
pixels = x_data.flatten()
print pixels.shape
我得到的结果是:(12288000,)
然而,我需要一个这些维度的数组:(1000, 12288)
我该如何实现?
Flatten()
和reshape()
都是无损的。结果数组的维度应该总是相乘得到相同的总数。Flatten()
具有1-D数组的形状(shape()
),而不是n-D数组,因此没有第二个值来表示其形状。它看起来像array([1, 2, 3,])
。一个形状为(3,1)的n-D数组看起来像array([[1],[2],[3]])
。 - Rayx_data.reshape(1000, 12288)
- Ray