Gibt es eine numpy Methode oder Funktion, um ein Array von UINT64 in zwei Arrays von uint32 aufzuteilen

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Gibt es eine numpy Methode oder Funktion, um ein Array von UINT64 in zwei Arrays von uint32 aufzuteilen

by Anonymous » 14 Apr 2025, 11:22

Sag, ich habe ein Array wie folgt: < /p>

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)
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?

Top