在NumPy 陣列中組合異質資料型別
在NumPy 中,常常會遇到需要組合包含不同資料型態的不同陣列的情況合併。雖然連接數組提供了一種簡單的解決方案,但它通常會導致整個數組轉換為第一個數組的資料類型,從而導致潛在的記憶體效率低下。
要解決這個挑戰,請考慮以下方法:
記錄數組:
記錄數組提供了一種通用方法,可以在單個數組中儲存異質資料類型,而不會影響其記憶體效率。它們採用類似表格的結構,其中每一列代表一個具有相應資料類型的欄位。例如,要將字串數組(A) 與整數數組(B) 組合起來,您可以建立一個記錄數組,如下所示:
記錄數組現在由兩個字段組成:keys (字串)和資料(整數)。您可以使用屬性存取單獨存取這些字段,例如記錄['keys']和記錄['data']。
結構化數組:
結構化數組,與記錄數組類似,提供一種為數組定義自訂資料類型的方法。他們不使用屬性訪問,而是使用索引來訪問不同的欄位。若要建立結構化陣列:
dtype 參數指定元組的元組,其中每個元組定義欄位名稱和資料類型。產生的陣列 arr 具有可透過索引存取的欄位鍵(字串)和資料(整數),例如 arr['keys'] 和 arr['data']。
注意:
結構化陣列不提供像記錄陣列那樣的屬性存取。然而,由於它們的直接索引方法,它們對於某些操作來說可以更有效。此外,記錄數組和結構化數組都支援切片、屏蔽和廣播等操作,為資料操作提供了靈活性。
以上是如何在 NumPy 數組中組合不同資料型別而不損失記憶體效率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!