Ich habe ein numpy_array. So etwas wie [ a b c ]
.
Und dann möchte ich es an ein anderes NumPy-Array anhängen (genau wie wir eine Liste von Listen erstellen). Wie erstellen wir ein Array von NumPy-Arrays, die NumPy-Arrays enthalten?
Ich habe ohne Glück versucht, Folgendes zu tun
>>> M = np.array([])
>>> M
array([], dtype=float64)
>>> M.append(a,axis=0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'append'
>>> a
array([1, 2, 3])
Antworten:
oder dieses:
quelle
vstack()
Idee hinzugefügt . Sie wissen, dass Sie das Array mit erstellen könnenarray([[1,2,3],[2,3,4]])
, oder?numpy.vstack
kann mehr als 2 Arrays im Sequenzargument akzeptieren. Wenn Sie also mehr als 2 Arrays kombinieren müssen, ist vstack praktischer.concatenate
kann auch mehrere Arrays nehmenNun, die Fehlermeldung sagt schon alles: NumPy-Arrays haben keine
append()
Methode. Es gibt jedoch eine kostenlose Funktionnumpy.append()
:Dadurch wird ein neues Array erstellt, anstatt
M
an Ort und Stelle zu mutieren . Beachten Sie, dass bei der Verwendungnumpy.append()
beide Arrays kopiert werden. Sie erhalten Code mit besserer Leistung, wenn Sie NumPy-Arrays mit fester Größe verwenden.quelle
numpy.vstack()
.Sie können verwenden
numpy.append()
...Dadurch werden keine zwei separaten Arrays erstellt, sondern zwei Arrays an ein eindimensionales Array angehängt.
quelle
Sven sagte alles, sei nur sehr vorsichtig wegen der automatischen Typanpassungen, wenn Append aufgerufen wird.
Wie Sie anhand des Inhalts sehen, ging der dtype von int64 zu float32 und dann zu S1
quelle
Ich habe diesen Link gefunden, als ich nach etwas etwas anderem gesucht habe, wie man Array-Objekte an ein leeres numpy-Array anfügt, aber alle Lösungen auf dieser Seite ohne Erfolg ausprobiert.
Dann fand ich diese Frage und Antwort: Wie man eine neue Zeile zu einem leeren Numpy-Array hinzufügt
Das Wesentliche hier:
Dann können Sie verketten verwenden, um Zeilen wie folgt hinzuzufügen:
arr = np.concatenate( ( arr, [[x, y, z]] ) , axis=0)
Siehe auch https://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html
quelle
Tatsächlich kann man immer eine gewöhnliche Liste von Numpy-Arrays erstellen und später konvertieren.
quelle
Ich hatte das gleiche Problem und konnte die Antwort von @Sven Marnach sowieso nicht kommentieren (nicht genug Wiederholung, meine Güte, ich erinnere mich, als Stackoverflow zum ersten Mal gestartet wurde ...).
Hinzufügen einer Liste von Zufallszahlen zu einer 10 x 10-Matrix.
Mit np.zeros () wird ein Array mit 1 x 10 Nullen erstellt.
Anschließend wird mit np.random eine Liste mit 10 Zufallszahlen erstellt und randomList zugewiesen. Die Schleife stapelt es 10 hoch. Wir müssen nur daran denken, den ersten leeren Eintrag zu entfernen.
Also in einer Funktion:
ein 7 x 7 Array mit Zufallszahlen 0 - 1000
quelle
Wenn ich Ihre Frage verstehe, ist hier eine Möglichkeit. Angenommen, Sie haben:
Also hier ist ein Code ...
Was dazu führt:
quelle
Versuchen Sie diesen Code:
Sie können auch Array anstelle von "a" verwenden.
quelle