如何在 Python 中將 NumPy 陣列轉換為字典?
本教程提供了一個分步指南,介紹如何使用 Python 將 NumPy 陣列轉換為字典。在 NumPy 中,陣列本質上是一個元素表,這些元素通常是數字,並且共享相同的資料型別。它由一個正整數元組索引,陣列的維度數稱為其秩。每個維度上的陣列大小由一個稱為陣列形狀的整數元組定義。NumPy 陣列類稱為ndarray,其元素可以透過使用方括號訪問。可以使用巢狀 Python 列表來初始化 NumPy 陣列。
在 Python 中將 NumPy 陣列轉換為字典在您需要對陣列執行某些操作(例如排序或搜尋)並需要字典作為輸入時非常有用。生成的字典將具有對應於陣列元素索引的鍵,以及對應於陣列元素本身的值。
藉助本教程中提供的分步說明,您將能夠輕鬆地將 NumPy 陣列轉換為 Python 中的字典。
將 NumPy 陣列轉換為字典的方法涉及三個主要步驟 -
第一步是使用 flatten 函式建立一個數組的副本,該副本摺疊成一個維度。當我們希望順序訪問陣列的每個元素時,這很有用。
第二步是使用 enumerate 函式,該函式會自動為列表中的每個專案生成一個計數器或索引。預設情況下,計數器或索引從 0 開始,但如果需要,我們可以指定不同的起始值。在這種情況下,計數器或索引對應於字典的鍵。
最後,我們使用 dict 函式將具有列舉索引的扁平化陣列轉換為字典。生成的字典將具有對應於扁平化陣列索引的鍵,以及對應於陣列元素的值。
現在讓我們關注程式碼示例,在該示例中我們將 NumPy 陣列轉換為 Python 中的字典。
示例 1:將 NumPy 陣列轉換為字典
此程式碼建立了一個 3×3 的整數 NumPy 陣列,然後使用 dict 和 enumerate 函式將其轉換為字典。生成的字典具有對應於扁平化陣列索引的鍵,以及對應於陣列元素的值。然後,我們列印原始陣列和生成的字典以驗證轉換。
請考慮以下所示程式碼。
# importing required libraries import numpy as np # creating a numpy array array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # convert numpy array to dictionary d = dict(enumerate(array.flatten(), 1)) # print numpy array print(array) print(type(array)) # print dictionary print(d) print(type(d))
要執行以上程式碼,我們需要執行以下所示命令。
python3 main.py
輸出
在終端中執行以上命令後,我們將獲得以下輸出
[[1 2 3]
[4 5 6]
[7 8 9]]
<class 'numpy.ndarray'>
{1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}
<class 'dict'>
示例 2
在此版本的程式碼中,我們使用 enumerate 函式為 NumPy 陣列的每一行建立鍵值對。生成的字典具有鍵 1、2 和 3(對應於行索引加 1)以及值 [1, 2, 3]、[4, 5, 6] 和 [7, 8, 9]。
然後,我們列印原始 NumPy 陣列和生成的字典以驗證轉換。
請考慮以下所示程式碼。
# importing required libraries import numpy as np # creating a numpy array array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # convert numpy array to dictionary d = dict(enumerate(array, 1)) # print numpy array print(array) print(type(array)) # print dictionary print(d) print(type(d))
輸出
[[1 2 3]
[4 5 6]
[7 8 9]]
<class 'numpy.ndarray'>
{1: array([1, 2, 3]), 2: array([4, 5, 6]), 3: array([7, 8, 9])}
<class 'dict'>
結論
總之,可以使用多種方法輕鬆地將 NumPy 陣列轉換為 Python 中的字典。最簡單的方法是將 dict() 函式與 enumerate() 函式和 NumPy 陣列的 flatten() 方法結合使用。
另一種方法是使用字典推導式迭代陣列的行,並根據行索引和行本身建立鍵值對。這些方法允許我們將 NumPy 陣列表示為字典,這對於需要字典資料結構的各種應用程式很有用。
藉助本教程中提供的示例,您應該能夠輕鬆地將 NumPy 陣列轉換為 Python 程式碼中的字典。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP