Numpy-Array-Zuweisung: Unterschiede bei der Speicherzuordnung
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 legal, wie 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.
Das obige ist der detaillierte Inhalt vonWann wird bei der NumPy-Array-Zuweisung zusätzlicher Speicher zugewiesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!