ich eine numpy.array
von NxM zu NxMx3 zuordnen möchten, wo ein Vektor aus drei Elementen eine Funktion der ursprünglichen Eintrag:Mapping elementweise ein NumPy Array in ein Array von mehreren Dimensionen
lambda x: [f1(x), f2(x), f3(x)]
jedoch Dinge wie numpy.vectorize
nicht erlauben, Dimensionen zu ändern. Sicher, ich kann ein Array von Nullen erstellen und eine Schleife (and it is what I am doing by now), aber es klingt weder Pythonic noch effizient (wie jede Schleife in Python).
Gibt es eine bessere Möglichkeit, eine elementweise Operation für numpy.array auszuführen, die für jeden Eintrag einen Vektor erzeugt?
Wenn 'N' und' M' signifikant größer als 3 sind, hat das Schleifen über die dritte Dimension einen unbedeutenden Effekt auf die Leistung. Und für For-Loops gibt es nichts Unpythonisches! Was nicht sehr numptonisch oder effizient ist, ist 'np.vectorize'. Sie könnten versuchen, 'f1',' f2' und 'f3' in eine einzige Funktion zu konvertieren, die Arrays und zurückgegebene Arrays verwendet. Ohne zu wissen, was Ihre Funktionen tun, ist es nicht möglich zu wissen, ob dieser Ansatz zu Ihrem Problem passt. – Jaime
@Jaime Ich bin Schleife über N und M, nicht 3. Das Problem ist die Umwandlung komplexer Zahlen in drei Floats [R, G, B], so dass ich eine komplexe Funktion plotten kann (siehe den Link in der Frage). –