」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 何時在 NumPy 數組賦值中分配額外的記憶體?

何時在 NumPy 數組賦值中分配額外的記憶體?

發佈於2024-11-03
瀏覽:511

When Is Additional Memory Allocated in NumPy Array Assignment?

Numpy 陣列賦值:記憶體分配差異

在NumPy 中,向陣列賦值有三種常用方法:

  • B = A
  • B[:] = A
  • numpy.copy(B, A)

B = A

當您使用B = A 時,您並不是在建立新陣列。相反,您將新名稱 (B) 綁定到現有陣列 (A)。因此,對一個陣列所做的任何修改都會反映在另一個陣列中。

B[:] = A

此語法建立一個新陣列 B,其中包含與 A 相同的維度和值。原始數組 A 未修改。與numpy.copy.

numpy.copy(B, A)

此方法需要更少的記憶體分配,因為您編寫的這種方法是不合法的。應該是 B = numpy.copy(A)。 numpy.copy 建立一個與 A 具有相同維度和值的新陣列 B。與 B[:] = A 相比,此方法需要更多的記憶體分配,因為它從原始數組建立資料的單獨實體副本。

何時分配額外記憶體?

當您使用 numpy.copy 建立陣列的新實體副本時,會指派額外記憶體。這是因為它為複製的資料分配了一個新的連續記憶體區塊。

何時未分配記憶體?

當您使用 B = A 時,未分配記憶體因為您只是重命名原始陣列。當您使用 B[:] = A 時,也不會分配內存,因為它重複使用與原始數組相同的內存位置。

版本聲明 本文轉載於:1729560494如有侵犯,請洽[email protected]刪除
最新教學 更多>
  • 為 macOS 建立市政廳時鐘應用程式:綜合指南
    為 macOS 建立市政廳時鐘應用程式:綜合指南
    准备好为您的 Mac 构建一个很酷的市政厅时钟应用程序了吗?伟大的!我们将创建一个位于菜单栏中的应用程序,每 15 分钟发出一次提示音,甚至可以计算时间。让我们一步步分解,我将解释代码的每一部分,以便您能够理解发生了什么。 项目概况 我们的市政厅时钟应用程序将: 在 macOS 菜单...
    程式設計 發佈於2024-11-03
  • 如何在 JavaScript 中建立非同步循環?
    如何在 JavaScript 中建立非同步循環?
    JavaScript 中的非同步循環雖然JavaScript 提供了各種類型的循環,但可以建立暫停執行以等待非同步呼叫的循環具有挑戰性的。這是因為混合同步和非同步程式碼可能會導致意外行為。 解決方案:採用非同步方法要克服此限制,有必要完全擁抱事件JavaScript 驅動的方法。這涉及使用非同步呼叫...
    程式設計 發佈於2024-11-03
  • 降低效能的兩行 CSS(fps 到 ps)
    降低效能的兩行 CSS(fps 到 ps)
    我最近發布了《學習廁所》,如果您看過它,您可能會注意到背景中的動畫,其中彩色圓圈在螢幕上對角移動。看起來像這樣: 它在 Chrome 和 Safari 上運行良好,但我注意到 Firefox 上的性能嚴重下降。 效能太差了,我直接在 Firefox 中停用了這個動畫。 ...
    程式設計 發佈於2024-11-03
  • 如何在 React 中使用上下文
    如何在 React 中使用上下文
    欢迎回来,朋友们!
 今天我们将回顾名为 useContext 的 React Hook 的基础知识。 useContext 是一个强大的工具,它比 useState 更进一步,创建了一个类似全局的 State,可以将信息传递给子组件和孙组件,而无需直接传递 props。
 但我有点超前了。
如果你...
    程式設計 發佈於2024-11-03
  • JavaScript 可以修改 PHP 會話變數嗎?
    JavaScript 可以修改 PHP 會話變數嗎?
    使用 JavaScript 設定 PHP 會話變數你可以使用 JavaScript 操作 PHP 會話變數嗎? 是的,您可以透過 AJAX 請求使用 JavaScript 設定 PHP 會話變數。 操作方法如下:JavaScript 程式碼:jQuery('#div_session_write')....
    程式設計 發佈於2024-11-03
  • Babel 6 修改後的預設導出行為有何影響解決方法?
    Babel 6 修改後的預設導出行為有何影響解決方法?
    Babel 6 修改後的預設匯出行為:從方便到語意一致性的轉變在一項突破性的改變中, Babel 6 修改了其方法導出預設值,引入從先前受CommonJS 啟發的行為到嚴格的ES6 原則的轉變。這項變化為開發者帶來了機會和挑戰。 先前,Babel 在預設導出聲明中添加了一行“module.expor...
    程式設計 發佈於2024-11-03
  • 如何識別資料框中具有部分字串匹配的列?
    如何識別資料框中具有部分字串匹配的列?
    識別名稱中包含部分字串的列在資料框中,您的任務是查找名稱部分與特定字串。與精確匹配不同,要求是識別包含字串「spike」但可能在其之前或之後包含其他字元的列,例如「spike-2」、「hey spike」或「spiked-in」。 為了實現這一點,我們可以利用循環來迭代資料框的列名稱。在此循環中,...
    程式設計 發佈於2024-11-03
  • 用一個簡單的屬性來加速你的 CSS
    用一個簡單的屬性來加速你的 CSS
    您知道嗎,您可以透過使用 all: unset; 來大幅縮小 CSS 檔案大小?這會重設元素上的所有屬性,一次清除所有繼承的樣式,使您的 CSS 更精簡且更易於管理。 試試看一下,看看您的程式碼變得多麼乾淨!如何管理繼承的樣式?
    程式設計 發佈於2024-11-03
  • TypeScript 冒險與類型挑戰 – Day Pick
    TypeScript 冒險與類型挑戰 – Day Pick
    大家好。 我正在解決類型挑戰,以更深入地研究 TypeScript。 今天,我想分享一下我對Pick的了解。 - 挑戰 - interface Todo { title: string description: string completed: boolean }...
    程式設計 發佈於2024-11-03
  • 如何擴展 JavaScript 中的內建錯誤物件?
    如何擴展 JavaScript 中的內建錯誤物件?
    擴充 JavaScript 中的 Error要擴充 JavaScript 中的內建 Error 對象,您可以使用 extends 關鍵字定義 Error 的子類別。這允許您使用附加屬性或方法建立自訂錯誤。 在 ES6 中,您可以定義自訂錯誤類,如下所示:class MyError extends E...
    程式設計 發佈於2024-11-03
  • 將測試集中在網域上。 PHPUnit 範例
    將測試集中在網域上。 PHPUnit 範例
    介紹 很多時候,開發人員嘗試測試 100%(或幾乎 100%)的程式碼。顯然,這是每個團隊應該為他們的專案達到的目標,但從我的角度來看,只應該完全測試整個程式碼的一部分:您的網域。 域基本上是程式碼中定義項目實際功能的部分。例如,當您將實體持久保存到資料庫時,您的網域不負責將其持...
    程式設計 發佈於2024-11-03
  • 如何使用 SQL 搜尋列中的多個值?
    如何使用 SQL 搜尋列中的多個值?
    使用 SQL 在列中搜尋多個值建立搜尋機制時,通常需要在同一列中搜尋多個值場地。例如,假設您有一個搜尋字串,例如“Sony TV with FullHD support”,並且想要使用該字串查詢資料庫,將其分解為單字。 透過利用 IN 或 LIKE 運算符,您可以實現此功能。 使用 IN 運算子IN...
    程式設計 發佈於2024-11-03
  • 如何安全地從 Windows 登錄讀取值:逐步指南
    如何安全地從 Windows 登錄讀取值:逐步指南
    如何安全地從Windows 註冊表讀取值檢測登錄項目是否存在確定登錄項目是否存在: LONG lRes = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Perl", 0, KEY_READ, &hKey); if (lRes...
    程式設計 發佈於2024-11-03
  • Staat原始碼中的useBoundStoreWithEqualityFn有解釋。
    Staat原始碼中的useBoundStoreWithEqualityFn有解釋。
    在這篇文章中,我們將了解Zustand原始碼中useBoundStoreWithEqualityFn函數是如何使用的。 上述程式碼摘自https://github.com/pmndrs/zustand/blob/main/src/traditional.ts#L80 useBoundStoreWi...
    程式設計 發佈於2024-11-03
  • 如何使用 Go 安全地連接 SQL 查詢中的字串?
    如何使用 Go 安全地連接 SQL 查詢中的字串?
    在Go 中的SQL 查詢中連接字串雖然文字SQL 查詢提供了一種簡單的資料庫查詢方法,但了解將字串文字與值連接的正確方法至關重要以避免語法錯誤和類型不匹配。 提供的查詢語法:query := `SELECT column_name FROM table_name WHERE colu...
    程式設計 發佈於2024-11-03

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3