Wie füge ich eine neue Zeile zu einem leeren Nummernfeld hinzu?
Verwendung von standard-Python-arrays, kann ich Folgendes tun:
arr = []
arr.append([1,2,3])
arr.append([4,5,6])
# arr is now [[1,2,3],[4,5,6]]
Aber ich kann nicht die gleiche Sache in numpy. Zum Beispiel:
arr = np.array([])
arr = np.append(arr, np.array([1,2,3]))
arr = np.append(arr, np.array([4,5,6]))
# arr is now [1,2,3,4,5,6]
Ich schaute auch in vstack
aber wenn ich vstack
auf ein leeres array, erhalte ich:
ValueError: all the input array dimensions except for the concatenation axis must match exactly
So, wie kann ich tun, fügen Sie eine neue Zeile ein leeres array in numpy?
InformationsquelleAutor der Frage Tony Stark | 2014-03-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Weg zum "start" das array, das Sie wollen, ist:
Ist ein leeres array, aber es hat die richtige Räumlichkeit.
Dann werden Sie sicher zum Anhängen entlang der Achse, 0:
Aber, @jonrsharpe richtig ist. In der Tat, wenn Sie gehen, um das Anhängen in einer Schleife, es wäre viel schneller zum Anhängen an eine Liste wie in deinem ersten Beispiel, dann konvertieren in ein numpy-array am Ende, da bist du wirklich nicht mit numpy-wie beabsichtigt-während der Schleife:
Den numpythonic Weg, es zu tun, hängt von Ihrer Anwendung, aber es wäre mehr wie:
InformationsquelleAutor der Antwort askewchan
In diesem Fall möchten Sie vielleicht, um die Funktionen np.hstack und np.vstack
Können Sie auch die np.verketten-Funktion.
Cheers
InformationsquelleAutor der Antwort mrcl
Hier ist meine Lösung:
InformationsquelleAutor der Antwort just4fun
mithilfe einer benutzerdefinierten dtype definition, was für mich gearbeitet wurde:
InformationsquelleAutor der Antwort boclodoa