首頁  >  文章  >  後端開發  >  如何在單一 NumPy 數組中儲存多種資料類型並保留原始資料類型?

如何在單一 NumPy 數組中儲存多種資料類型並保留原始資料類型?

DDD
DDD原創
2024-10-21 17:56:45646瀏覽

How to Store Multiple Data Types in a Single NumPy Array with Preserved Original Data Types?

在單一NumPy 陣列中儲存多種資料類型

您面臨著組合兩個陣列的挑戰,一個包含字串,另一個包含字串包含整數,放入單一數組中。雖然您目前使用 np.concatenate 的方法會導致整個陣列轉換為字串資料類型,但您正在尋求更有效的解決方案。

記錄數組:

一個有效的方法是利用記錄數組。這允許您建立保留其原始資料類型的“列”。記錄數組是使用 numpy.rec.fromarrays 函數建構的,並採用代表每一列的陣列及其對應的欄位名稱。

<code class="python">import numpy as np

a = np.array(['a', 'b', 'c', 'd', 'e'])
b = np.arange(5)

records = np.rec.fromarrays((a, b), names=('keys', 'data'))

print(records)
# rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], 
#      dtype=[('keys', '|S1'), ('data', '<i8')])</code>

結構化數組:

另一個選項是使用結構化數組,它是用自訂資料類型聲明的。雖然它們缺乏記錄數組提供的屬性訪問,但它們提供了更有效的表示。

<code class="python">arr = np.array([('a', 0), ('b', 1)], 
                      dtype=([('keys', '|S1'), ('data', 'i8')]))

print(arr)
# array([('a', 0), ('b', 1)], 
#      dtype=[('keys', '|S1'), ('data', '<i8')])</code>

透過根據您的特定要求使用記錄或結構化數組,您可以在單一 NumPy 中有效地儲存多種資料類型數組,同時保持其原始資料類型。

以上是如何在單一 NumPy 數組中儲存多種資料類型並保留原始資料類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn