ホームページ  >  記事  >  バックエンド開発  >  可変長リストから高密度の NumPy 配列を作成するには?

可変長リストから高密度の NumPy 配列を作成するには?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-04 08:32:01904ブラウズ

How to Create a Dense NumPy Array from Variable-Length Lists?

可変長リストからの高密度 NumPy 配列の生成

可変長リストを含む Python シーケンスの NumPy 配列への標準変換では、オブジェクト型配列が作成されます。別のデータ型を強制すると、ValueError が発生します。この記事では、欠損値をプレースホルダーで埋めることによって int32 型の高密度の NumPy 配列を生成する効率的な方法を示します。

可変長のリスト シーケンスを NumPy 配列に変換するには、itertools.zip_longest を利用できます。 itertools モジュールの関数。この関数はリストを反復処理し、最も短いリストがなくなると停止します。長いリストの欠損値を、fillvalue 引数で指定されたプレースホルダー値で埋めます。

たとえば、次の一連の可変長リストを考えてみましょう。

v = [[1], [1, 2]]

密な NumPy を生成するにはこのシーケンスから配列を取得し、プレースホルダー値 0 を指定するには、次のコードを使用できます:

<code class="python">import itertools
np.array(list(itertools.zip_longest(*v, fillvalue=0))).T</code>

このコードの出力は、欠損値が 0 に置き換えられた int32 型の NumPy 配列になります。

array([[1, 0],
       [1, 2]])

このメソッドは、可変長リストを NumPy 配列に変換する際に、データ型の一貫性を確保し、欠落している値を必要なプレースホルダーで埋める効率的な方法を提供します。

以上が可変長リストから高密度の NumPy 配列を作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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