ホームページ >バックエンド開発 >Python チュートリアル >データ型を維持しながら NumPy 配列を異なるデータ型と組み合わせるには?
NumPy で複数のデータ型を持つ配列を結合する
異なるデータ型を含む配列を、各列の対応するデータ型を持つ 1 つの配列に連結したいという要望挑戦です。 np.concatenate() を使用する一般的なアプローチでは、残念ながら配列全体が文字列データ型に変換され、メモリ効率が低下します。
この制限を克服するには、実行可能な解決策として、レコード配列または構造化配列を使用します。
レコード配列
レコード配列を使用すると、属性を通じて個々のデータ フィールドにアクセスできます。各フィールドのデータ型を指定することで、複数のデータ型を 1 つの配列に組み合わせることができます:
<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)</code>
出力:
rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], dtype=[('keys', '|S1'), ('data', '<i8')])
構造化配列
構造化配列も同様で、各列のデータ型を定義する機能を提供します。ただし、レコード配列のような属性アクセスはサポートしていません:
<code class="python">arr = np.array([('a', 0), ('b', 1)], dtype=([('keys', '|S1'), ('data', 'i8')])) print(arr)</code>
出力:
array([('a', 0), ('b', 1)], dtype=[('keys', '|S1'), ('data', '<i8')])
レコード配列と構造化配列の選択
レコード配列と構造化配列のどちらを選択するかは、個々の使用例によって異なります。レコード配列は属性アクセスの利便性を提供しますが、より複雑なデータ構造には構造化配列が推奨される場合があります。どちらのアプローチも、NumPy で配列をさまざまなデータ型と組み合わせる便利な方法を提供し、データ操作の柔軟性と効率性を提供します。
以上がデータ型を維持しながら NumPy 配列を異なるデータ型と組み合わせるには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。