Wenn ich versuche, mit mehr als 32 Dimensionen eine numpy Array zu erstellen, bekomme ich einen Fehler:numpy ndarray mit mehr als 32 Dimensionen
import numpy as np
np.ndarray([1] * 33)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-2-78103e601d91> in <module>()
----> 1 np.ndarray([1] * 33)
ValueError: sequence too large; cannot be greater than 32
ich diese gefunden: Using numpy.array with large number of dimensions auf diese Frage bezogen werden, aber ich möchte Mach das, ohne eine eigene Version zu erstellen.
Mein Anwendungsfall:
Ich arbeite mit Joint Probability Distributionen und ich versuche, jede Variable auf einer Achse darzustellen, so dass Berechnungen darauf (marginalisieren, reduzieren) eine einzeilige Operation ist. Zum Beispiel für eine Marginalisierungsoperation kann ich einfach eine Summe über die Achse dieser Variablen machen. Für die Multiplikation kann ich einfach eine einfache Multiplikation durchführen (nachdem überprüft wurde, ob die Achsen gleich sind).
Gibt es eine mögliche Abhilfe?
Die Problemumgehung hängt von dem Anwendungsfall ab, nehme ich an. Möchten Sie mehr Hintergrundinformationen geben? –
Sie sind sich bewusst, dass ein 32-dim-Array, selbst wenn es nur eine minimale Form von [2] * 32 und float32 dtype hat, 16 GB Speicher belegen würde? –