「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > データ型を維持しながら NumPy 配列を異なるデータ型と組み合わせるには?

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

2024 年 11 月 7 日に公開
ブラウズ:781

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

NumPy で複数のデータ型を持つ配列を結合する

異なるデータ型を含む配列を、各列の対応するデータ型を持つ 1 つの配列に連結したいという要望が考えられます。挑戦です。 np.concatenate() を使用する一般的なアプローチでは、残念ながら配列全体が文字列データ型に変換され、メモリ効率が低下します。

この制限を克服するための実行可能な解決策には、レコード配列または構造化配列を使用することが含まれます。

レコード配列

レコード配列を使用すると、属性を通じて個々のデータ フィールドにアクセスできます。各フィールドのデータ型を指定することで、複数のデータ型を 1 つの配列に組み合わせることができます:

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')])

構造化配列

構造化配列は次のとおりです。同様に、各列のデータ型を定義する機能を提供します。ただし、レコード配列のような属性アクセスはサポートされていません:

arr = np.array([('a', 0), ('b', 1)], 
                      dtype=([('keys', '|S1'), ('data', 'i8')]))

print(arr)

出力:

array([('a', 0), ('b', 1)], 
      dtype=[('keys', '|S1'), ('data', '<i8')])

レコードと構造化配列の選択

レコード配列と構造化配列のどちらを選択するかは、個々の使用例によって異なります。レコード配列は属性アクセスの利便性を提供しますが、より複雑なデータ構造には構造化配列が推奨される場合があります。どちらのアプローチも、NumPy で配列をさまざまなデータ型と組み合わせる便利な方法を提供し、データ操作の柔軟性と効率を実現します。

リリースステートメント この記事は次の場所に転載されています: 1729504697 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3