Wie ändere ich den Integer-Typ beim Erstellen eines Meshgrids mit Numpy?
Ich habe den folgenden Fehler erhalten
MemoryError: 201. GiB für ein Array mit Form (2999, 2999, 2999) und Datentyp int64 kann nicht zugeordnet werden
beim Erstellen eines Meshgrids mit Numpy mithilfe des folgenden Codes
dimension=3
tot_length=2000
list_no=range(1, tot_length)
arr = np.meshgrid ( *[list_no for _ in range ( dimension )] )
Darf ich wissen, wo ich int64 in int32 oder eine andere mögliche Einstellung ändern kann, mit der ich die Anzahl maximieren kann, tot_lengthdie höher als der Wert ist ?2000
Ich habe die Dokumentation überprüft , aber es gibt keine Option zum Ändern des Datentyps in Typ 32.
Antworten
Darf ich wissen, wo ich int64 in int32 ändern soll?
NumPy vermutet, int64weil Sie ihm ein rangeObjekt geben, in dem es ein Array erwartet, und ranges Sequenzen von sind int. Verwenden Sie ein Array, wenn Sie nicht raten möchten:
list_no = np.array(range(1, tot_length), dtype=np.int32)
oder einfacher
list_no = np.arange(1, tot_length, dtype=np.int32)
Natürlich benötigen Sie immer noch 100 GB Speicher, was immer noch ziemlich groß ist.