ChatGPTってやっぱすげー!
プログラムは雑に書けば教授が直してくれるのだ
今のパソコ予想で使ってる予想AIモデルの元データが2018年から2022年の5年間のデータなんだが、この5年間11万レースを前回のback_sabun()関数に入れると、処理に1時間以上かかる計算になったんでChatGPT教授にback_sabun()関数の高速化を依頼してみた。
たった1行
次の関数の処理速度を上げたい
すると、教授は即答で
ーーーーーーーーここから教授ーーーーーーーーー
この関数の処理速度を改善するために、以下の点に注目して最適化を行います:
DataFrameの操作をベクトル化する:現在のコードはリスト内包表記を使用しており、ループが多く含まれています。Pandasのベクトル化された操作を使用することで、速度を向上させることができます。
重複したコードを整理する:s_listが'B'または'逃'の場合の処理と、その他の場合の処理が似ています。これらを統一して整理します。
インデックス操作の効率化:ループ内でのDataFrameのインデックス操作を減らします。
以下に、最適化されたコードを示します。
変更点の詳細
ベクトル化した操作:max()やsum()などのPandasメソッドを使用して、ベクトル化された計算を行います。
重複コードの削減:'B'や'逃'に特有の処理は条件分岐の中で行い、それ以外の部分は統一しました。
DataFrameのコピーの削減:dfやdf_2のコピーを最小限に抑えました。
これにより、ループの回数が減り、全体的なパフォーマンスが向上するはずです。
ーーーーーーーーここまで教授ーーーーーーーーー
ベクトル化www
なんじゃそりゃw ドカタのおっちゃんには思いつかん
で速度はどうなったかというと
1万行(約1200レース)で試してみた
俺のコード 82.63 it/s
教授のコード 145.31 it/s
75%の速度アップ
一生ついていきます!
この記事が気に入ったらサポートをしてみませんか?