Python numpy阵列的平坦化
我正在对图像进行数据挖掘。每个像素被视为一个数据点。图像如下所示:Python numpy阵列的平坦化,python,numpy,Python,Numpy,我正在对图像进行数据挖掘。每个像素被视为一个数据点。图像如下所示: im=Image.open('lena.bmp') im=numpy.array(im) print im.shape 根据图像是彩色还是灰度,im.shape为(10,10,3)或(10,10,1) 之后,图像被展平为特征矩阵,如下所示: im=Image.open('lena.bmp') im=numpy.array(im) print im.shape 如果是(10,10,3),那么-->(100,3) 如果是(10,
im=Image.open('lena.bmp')
im=numpy.array(im)
print im.shape
根据图像是彩色还是灰度,im.shape为(10,10,3)或(10,10,1)
之后,图像被展平为特征矩阵,如下所示:
im=Image.open('lena.bmp')
im=numpy.array(im)
print im.shape
如果是(10,10,3),那么-->(100,3)
如果是(10,10,1),那么-->(100,1)
如何为此编写多态函数?我目前的做法是:
obs=reshape(im,(im.shape[0]*im.shape[1],1, im.size/(im.shape[0]*im.shape[1])))
你可以做:
obs = np.reshape(im, (-1, im.shape[-1]))
你的形状元组中没有额外的1吗?这是真的。我正在进行obs=重塑(im,(im.shape[0]*im.shape[1],im.size/(im.shape[0]*im.shape[1]))您能详细说明一下这个代码吗?它工作得很好。shape[-1]是维度的数量,在它之前-1如何?@dzunguyen
-1
在内部被numpy替换为适合数组大小所需的任何值。