在單一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中文網其他相關文章!