ホームページ >バックエンド開発 >Python チュートリアル >元のデータ型を保持したまま複数のデータ型を単一の NumPy 配列に保存するにはどうすればよいですか?
単一の NumPy 配列に複数のデータ型を格納する
文字列を含む配列と、文字列を含む配列の 2 つの配列を組み合わせるという課題に直面しています。整数を含むものを 1 つの配列にまとめます。 np.concatenate を使用する現在のアプローチでは配列全体が文字列 dtype に変換されますが、より効率的な解決策を求めています。
レコード配列:
One効果的なアプローチは、レコード配列を活用することです。これにより、元のデータ型を保持する「列」を作成できます。レコード配列は 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>
構造化配列:
Anotherオプションは、カスタム データ型で宣言された構造化配列を使用することです。レコード配列によって提供される属性アクセスはありませんが、より効率的な表現を提供します。
<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 に効果的に格納できます。元の dtype を維持したまま配列を作成します。
以上が元のデータ型を保持したまま複数のデータ型を単一の NumPy 配列に保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。