Gibt es eine numpy Methode oder Funktion, um ein Array von UINT64 in zwei Arrays von uint32 aufzuteilen
Posted: 14 Apr 2025, 11:22
Sag, ich habe ein Array wie folgt: < /p>
Dies führt jedoch zu einer Kopie für die oberen Bits aufgrund der Bitverschiebung, und beide Arrays sind immer noch vom Typ uint64 . Gibt es weitere Optimierungen, die ich ausprobieren kann oder ich habe kein Glück und muss die zusätzlichen Kopien auffressen?
Code: Select all
arr = np.asarray([1, 2, 3, 4294967296, 100], dtype=np.uint64)
< /code>
Ich möchte jetzt zwei Arrays, ein Array mit den unteren 32 Bit jedes Elements und eine mit den oberen 32 Bit jedes Elements, vorzugsweise mit Ansichten und Minimierung von Kopien, um so etwas zu erhalten: < /p>
upper = np.array([0, 0, 0, 1, 0], dtype=np.uint32)
lower = np.array([1, 2, 3, 0, 100], dtype=np.uint32)
< /code>
Ich habe Folgendes ausprobiert: < /p>
lower = arr.view() & 0xFFFFFFFF
upper = np.bitwise_right_shift(arr.view(), 32)