ホームページ >バックエンド開発 >Python チュートリアル >データ型を維持しながら NumPy 配列を異なるデータ型と組み合わせるには?

データ型を維持しながら NumPy 配列を異なるデータ型と組み合わせるには?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-21 17:59:18619ブラウズ

How to Combine NumPy Arrays with Different Datatypes While Preserving Data Types?

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

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