Ich benutze Python 2.7, um ein komplexwertiges (mxn) -dimensionales Array ohne eine anfänglich bekannte feste Größe (dh m und n sind nicht vor der Zeit bekannt) zu erstellen bestimmten Elementen werden unterschiedliche Werte zugewiesen. Daher werde ich an diesem Array an beliebigen Positionen, die in der Zukunft spezifiziert werden, bestehende Elemente ändern oder neue Elemente hinzufügen.Element an beliebiger Position eines n-dimensionalen Arrays einfügen
Im Allgemeinen möchte ich eine anfängliche Anordnung vorgeschriebener Größe in ein (m x n) -dimensionales Array transformieren. Zum Beispiel, wenn ich anfangen mit
[ 0.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.+0.j]
Ich mag es aktualisieren, entweder Fall 1 Fall 2 zu ergeben, oder Fall 3 (je nachdem, welche entscheiden, ich zu wählen?). Im Wesentlichen möchte ich nur eine null Zeile oder Spalte (oder beide) zum ursprünglichen Array hinzufügen.
Fall 1:
[ 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
Fall 2:
[ 0.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.+0.j]
Fall 3:
[ 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
Bei einem ähnlichen Ansatz wie oben, sondern np.insert verwendet, kann ich reproduzieren, was ich will von:
import numpy as np
T = np.zeros((2,3),dtype=np.complex_)
T = np.insert(T,len(T[0]),1,axis = 1)
oder
T = np.zeros((2,3),dtype=np.complex_)
T = np.insert(T,len(T[:,0]),1,axis = 0)
Mit dieser Methode kann ich spielen, um Fall zu erreichen, 1, 2, oder 3, aber gibt es eine besonders effiziente Methoden?
Die Einschränkungen bestehen wiederum darin, dass ein Objekt mit Elementen vom Typ complex verwendet werden muss, da diese Einträge in weiterer Arithmetik verwendet werden. Ich könnte den realen und komplexen Teil der Elemente trennen und zwei weitere Listen erstellen, aber mathematische Operationen müssten immer noch auf sie angewendet werden. Außerdem kann das endgültige Array Werte von m und n (stark) über 1000 haben. (Die endgültige erforderliche Größe des Arrays wird erst am Ende des Codes bekannt sein.)
Irgendein Einblick in die Lage hinzuzufügen Null Zeilen oder Spalten zu einem anfänglichen Array in einer effizienteren Weise wäre groß.
Sie möchten vielleicht überhaupt kein Array verwenden. NumPy-Arrays sind für diese Art von Verwendung überhaupt nicht geeignet. Erwägen Sie, ein Diktat oder etwas zu verwenden. – user2357112
Das scheint ich zu lesen. Der Hauptgrund für die Verwendung eines Arrays besteht darin, dass die Einträge komplexwertig sein und in weiteren mathematischen Operationen verwendet werden müssen. Ich könnte die Werte in einen realen und komplexen Teil aufteilen und zwei getrennte Listen erstellen, aber die Notwendigkeit, weiterhin an diese Listen anzuhängen und Operationen (z. B. trigonometrische/hyperbolische Funktionen, Potenzieren, Graphen) an diesen Elementen durchzuführen, würde immer noch bestehen bleiben. – Mathews24
Es gibt nichts, was Sie davon abhält, komplexe Zahlen in Listen oder Diktate zu setzen. – user2357112