見出し画像

ChatGPTってやっぱすげー!

プログラムは雑に書けば教授が直してくれるのだ

今のパソコ予想で使ってる予想AIモデルの元データが2018年から2022年の5年間のデータなんだが、この5年間11万レースを前回のback_sabun()関数に入れると、処理に1時間以上かかる計算になったんでChatGPT教授にback_sabun()関数の高速化を依頼してみた。

たった1行
次の関数の処理速度を上げたい

すると、教授は即答

ーーーーーーーーここから教授ーーーーーーーーー
この関数の処理速度を改善するために、以下の点に注目して最適化を行います:

  1. DataFrameの操作をベクトル化する:現在のコードはリスト内包表記を使用しており、ループが多く含まれています。Pandasのベクトル化された操作を使用することで、速度を向上させることができます。

  2. 重複したコードを整理するs_list'B'または'逃'の場合の処理と、その他の場合の処理が似ています。これらを統一して整理します。

  3. インデックス操作の効率化:ループ内でのDataFrameのインデックス操作を減らします。

以下に、最適化されたコードを示します。

変更点の詳細

  1. ベクトル化した操作max()sum()などのPandasメソッドを使用して、ベクトル化された計算を行います。

  2. 重複コードの削減'B''逃'に特有の処理は条件分岐の中で行い、それ以外の部分は統一しました。

  3. DataFrameのコピーの削減dfdf_2のコピーを最小限に抑えました。

これにより、ループの回数が減り、全体的なパフォーマンスが向上するはずです。
ーーーーーーーーここまで教授ーーーーーーーーー

ベクトル化www
なんじゃそりゃw ドカタのおっちゃんには思いつかん

で速度はどうなったかというと
1万行(約1200レース)で試してみた

俺のコード 82.63 it/s

教授のコード 145.31 it/s

75%の速度アップ

一生ついていきます!



この記事が気に入ったらサポートをしてみませんか?