パンダの for ループは本当に悪いのでしょうか?どのような場合に注意すべきですか?
はじめに
pandas は計算を高速化するベクトル化された演算で知られていますが、多くのコード例には依然としてループが含まれています。ドキュメントではデータの反復を避けることを推奨していますが、この投稿では、for ループがベクトル化されたアプローチよりも優れたパフォーマンスを提供するシナリオを検討します。
小規模データの反復とベクトル化
Forデータが小さい場合、for ループはベクトル化された関数よりも優れたパフォーマンスを発揮します。これは、ベクトル化された関数の軸の位置合わせ、混合データ型、欠落データの処理に伴うオーバーヘッドが原因です。最適化された反復メカニズムを使用するリスト内包表記はさらに高速です。
混合/オブジェクト dtypes による操作
文字列ベースの比較:
]辞書/リスト要素へのアクセス:
正規表現操作
for ループを考慮する場合
DataFrame の小さな行の場合:
混合データ型:
正規表現:
結論
ベクトル化された関数はシンプルさと読みやすさを提供しますが、次のことが重要です。特定のシナリオでループベースのソリューションを検討してください。パフォーマンス要件に最も適切なアプローチを決定するには、慎重にテストすることをお勧めします。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3