Numpy-Array-Zuweisung: Speicherzuordnungsunterschiede
In NumPy gibt es drei gängige Möglichkeiten, einem Array Werte zuzuweisen:
B = A
Wenn Sie B = A verwenden, erstellen Sie kein neues Array. Stattdessen binden Sie einen neuen Namen (B) an das vorhandene Array (A). Infolgedessen werden alle an einem Array vorgenommenen Änderungen im anderen widergespiegelt.
B[:] = A
Diese Syntax erstellt ein neues Array B mit dem Dieselben Abmessungen und Werte wie A. Das ursprüngliche Array A wird nicht geändert. Diese Methode erfordert im Vergleich zu numpy.copy weniger Speicherzuweisung.
numpy.copy(B, A)
Diese Methode ist nicht zulässig, da Sie sie geschrieben haben. Es sollte B = numpy.copy(A) sein. numpy.copy erstellt ein neues Array B mit den gleichen Abmessungen und Werten wie A. Diese Methode erfordert im Vergleich zu B[:] = A mehr Speicherzuweisung, da sie eine separate physische Kopie der Daten vom ursprünglichen Array erstellt.
Wann wird zusätzlicher Speicher zugewiesen?
Zusätzlicher Speicher wird zugewiesen, wenn Sie numpy.copy verwenden, um eine neue physische Kopie des Arrays zu erstellen. Dies liegt daran, dass ein neuer zusammenhängender Speicherblock für die kopierten Daten zugewiesen wird.
Wann wird Speicher nicht zugewiesen?
Speicher wird nicht zugewiesen, wenn Sie B = A verwenden weil Sie einfach das ursprüngliche Array umbenennen. Speicher wird auch nicht zugewiesen, wenn Sie B[:] = A verwenden, da es denselben Speicherort wie das ursprüngliche Array wiederverwendet.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3