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

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

Post by Anonymous »

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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post