Numpy aplatir l'image RVB tableau
J'ai de 1000 images RVB (64X64) qui je veux le convertir à une (m, n) de la matrice.
J'utilise ceci:
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
Qui me donne: (1000, 64, 64, 3)
Maintenant, si je fais:
pixels = x_data.flatten()
print pixels.shape
J'obtiens: (12288000,)
Cependant, j'ai besoin d'un tableau avec ces dimensions: (1000, 12288)
Comment puis-je y parvenir?
OriginalL'auteur apples-oranges | 2016-05-01
Vous devez vous connecter pour publier un commentaire.
Appliquer la numpy méthode
reshape()
après l'application deflatten()
à la aplati tableau:Flatten()
etreshape()
sont lossless. Les dimensions de la matrice résultante doit toujours se multiplier pour être le même total. Aplatir a unshape()
comme un 1-D de tableau, pas un n-D de tableau, donc pas de deuxième valeur de sa forme. Il ressemble àarray([1, 2, 3,])
. Un n-D de la forme (3,1) tableau ressembleraitarray([[1],[2],[3]])
.Voici un excellent post sur la formation: stackoverflow.com/questions/22053050/...
aussi, en fonction de ce que vous faites, vous pourriez juste voulez
reshape
les données d'origine directement--aplatir crée une restructuration de la copie des données que vous ne pourriez pas besoin.x_data.reshape(1000, 12288)
Merci encore pour l'astuce! Le plan est d'analyser la matrice à travers le tee-END de l'algorithme :-).
OriginalL'auteur Ray
Essayez ceci:
puis à l'aide de
numpy.reshape()
ou
(Numpy déduit de la valeur au lieu de
-1
partir de l'original de la longueur et dimension définiesd1
)d2*d3*4
est mieux d'épeautre-1
. Doncx_data_reshaped = x_data.reshape(x_data.shape[0], -1)
Pouvez-vous expliquer comment x_data.reshape((d1, d2*d3*4)) & x_data.remodeler(x_data.de la forme[0], -1) sont les mêmes?
OriginalL'auteur lskrinjar
Vous pouvez parcourir vos images tableau et aplatir chaque ligne indépendamment.
OriginalL'auteur James Evans