可変長リストを含む 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 サイトの他の関連記事を参照してください。