2016-06-17 8 views
0

Ich möchte einen Durchschnitt von 24 Arrays plotten, hatte aber eine Fehlermeldung '' Liste 'Objekt hat kein Attribut' Form ''. Wo ist der Fehler?Plotten einen Durchschnitt

empty_array=numpy.zeros[2,30,100] 
for x in range (1,25): 
    array = array[x,:,:,:] 
    empty_array += array 
average = map(lambda x:x/24,empty_array) 

plt.figure(1) 
plt.pcolor(average) 
plt.colorbar(orientation='horizontal')     
+0

'shape' ist ein Attribut von' numpy.array' nicht 'list'. In welcher Zeile ist ein Fehler aufgetreten? –

+0

@RahulKP in Zeile 'plt.color (Durchschnitt)' –

Antwort

1

empty_array=[2,30,100] erstellt kein leeres Array. Es ist eine Liste mit drei Nummern. Sie suchen nach numpy.zeros

+0

Natürlich. Mein Fehler, es tut mir leid. Ich meine, selbst nach dem Ersetzen durch Nullen war das Ergebnis so. –

1

Es sieht so aus, als ob Sie den Durchschnitt in einer der Achsen berechnen möchten. Sie können dazu einfach np.mean() verwenden. Beispiel aus der Dokumentation:

>>> a = np.array([[1, 2], [3, 4]]) 
>>> np.mean(a) 
2.5 
>>> np.mean(a, axis=0) 
array([ 2., 3.]) 
>>> np.mean(a, axis=1) 
array([ 1.5, 3.5]) 

Der Schlüssel hier ist die richtige Definition der Achse, die Sie mitteln möchten.

andere Fehler:

  • np.zeros() nehmen ein Tupel der Beschreibung der Form als eine Eingabe, d.h. np.zeros((2,30,100)).
  • Der Grund, warum Sie "'Liste' Objekt hat kein Attribut 'Shape'" ist, dass average ist ein Python list. Listen in Python haben kein Attribut mit dem Namen shape. plt.pcolor() expect a 2-D (numpy) array.
Verwandte Themen