ホームページ >バックエンド開発 >Python チュートリアル >元のデータ型を保持したまま複数のデータ型を単一の NumPy 配列に保存するにはどうすればよいですか?

元のデータ型を保持したまま複数のデータ型を単一の NumPy 配列に保存するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-21 17:56:45739ブラウズ

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

単一の 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。