可変長の Python シーケンスを高密度の NumPy 配列に効率的に変換するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-06 02:59:02
オリジナル
998 人が閲覧しました

How to Efficiently Convert Variable-Length Python Sequences to Dense NumPy Arrays?

可変長 Python シーケンスを高密度の NumPy 配列に効率的に変換する

Python シーケンスを NumPy 配列に変換するのは簡単です。ただし、可変長リストを扱う場合、暗黙的な変換によりオブジェクト型の配列が生成され、最適ではない可能性があります。さらに、特定のデータ型を強制すると例外が発生する可能性があります。

この問題に対する効率的な解決策の 1 つは、itertools.zip_longest 関数を使用することです。 zip_longest を利用すると、欠損値をプレースホルダー値で埋めた一連のタプルを簡単に作成できます。結果のリストを転置することで、目的のデータ型の高密度の NumPy 配列を取得できます。

たとえば、シーケンス v = [[1], [1, 2]] について考えてみましょう。

<code class="python">import itertools
np.array(list(itertools.zip_longest(*v, fillvalue=0))).T
Out:
array([[1, 0],
       [1, 2]])</code>
ログイン後にコピー

ここでは、短いリストの欠損値を埋めるために fillvalue 0 が使用されています。

Python 2 との互換性のために、代わりに itertools.izip_longest を使用してください。このアプローチは効率的で、可変長の Python シーケンスを高密度の NumPy 配列に変換する簡単な方法を提供し、型の安全性と最適なパフォーマンスを確保します。

以上が可変長の Python シーケンスを高密度の NumPy 配列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!