Verwandeln Sie 2D-NumPy-array in 1D-array für das Plotten Sie ein Histogramm
Ich versuche, plot, ein Histogramm mit matplotlib.
Ich brauche zum konvertieren meines one-line-2D-Array
[[1,2,3,4]] # shape is (1,4)
in ein 1D-Array
[1,2,3,4] # shape is (4,)
Wie kann ich dies tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie direkt den index der Spalte:
Oder verwenden Sie squeeze:
Hinzufügen
ravel
als weitere alternative für die Zukunft Suchenden. Aus den docs,Da das array 1xN, alle folgenden sind äquivalent:
arr1d = np.ravel(arr2d)
arr1d = arr2d.ravel()
arr1d = arr2d.flatten()
arr1d = np.reshape(arr2d, -1)
arr1d = arr2d.reshape(-1)
arr1d = arr2d[0, :]
umgestalten
wird den trick tun.Gibt es auch eine bestimmte Funktion,
flatten
, das scheint genau das zu tun, was Sie wollen.arr.reshape(-1)
wandelt ein array in 1D. Aber das entsprichtravel()
ist besser, als es gemeint ist, insbesondere, um anzuzeigen, dass die Umstellung auf 1D.die Antwort mtrw funktioniert der trick für ein array, das eigentlich nur eine Zeile wie diese, jedoch, wenn Sie ein 2d-array, mit Werten, die in zwei dimension, die Sie konvertieren können wie folgt
Hier finden Sie die Form des Arrays mit
np.shape
und finden Sie das Produkt, das mitnp.product
daraus ergeben sich nun die Anzahl der Elemente. Wenn Sie nun verwendennp.reshape()
Umformen, dass das array eine Länge von der Anzahl der insgesamt element Sie haben eine Lösung, die immer funktioniert.Verwenden numpy.Wohnung
Den
flat
- Eigenschaft gibt ein 1D-iterator über Ihre 2D-array. Diese Methode verallgemeinert auf eine beliebige Anzahl von Zeilen (oder Dimensionen). Bei großen arrays kann es sehr viel effizienter ist als eine reduzierte Kopie.