93 votes

ValueError: impossible de diffuser le tableau d'entrée de la forme (224,224,3) dans la forme (224,224)

J'ai une liste, par exemple, temp_list avec les propriétés suivantes:

 len(temp_list) = 9260  
temp_list[0].shape = (224,224,3)  
 

Maintenant, quand je convertis en tableau numpy,

 x = np.array(temp_list)  
 

Je reçois l'erreur:

 ValueError: could not broadcast input array from shape (224,224,3) into shape (224,224)  
 

Quelqu'un peut-il m'aider ici?

13voto

Jagesh Maharjan Points 354

Oui, la réponse Indeed @Evert est parfaitement correcte. De plus, j'aimerais ajouter une raison supplémentaire qui pourrait rencontrer une telle erreur.

 >>> np.array([np.zeros((20,200)),np.zeros((20,200)),np.zeros((20,200))])
 

Ce sera parfaitement bien, cependant, cela conduit à une erreur:

 >>> np.array([np.zeros((20,200)),np.zeros((20,200)),np.zeros((20,201))])

ValueError: could not broadcast input array from shape (20,200) into shape (20)
 

L'espace numpy dans la liste doit également être de la même taille.

9voto

Yinjie Gao Points 1

Vous pouvez convertir numpy.ndarray à object utilisant astype(object)

Cela fonctionnera:

 >>> a = [np.zeros((224,224,3)).astype(object), np.zeros((224,224,3)).astype(object), np.zeros((224,224,13)).astype(object)]
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X