目次
はじめに
本日、
自分がコア開発者のメンバーとして参加している
SciPyの新しいバージョン1.8.0がリリースされました🎉
今回も、1.8.0の新機能や特徴を、
連続ツイートでまとめてみたので、
そちらを、あとから参照しやすいように
記事としてまとめておきます。
過去のバージョンの記事は下記の通りです。
Tweetまとめ
年末にリリース予定だったので、かなりり遅れましたが、SciPy1.8.0がリリースされました🎊。今回もこのツイートのスレッドで、いくつかのおすすめ追加機能を紹介したいと思います。 https://t.co/G0PoNKKP6X
— Atsushi Sakai (@Atsushi_twi) 2022年2月6日
まず1つ目は、sparse array APIの評価用のAPIが実装されました。こちらの*_arrayというクラスが評価用のAPI群です。新APIはnumpy.arrayと同じ振る舞いになり、行列積オペレーターの@対応や、多次元スライスなどにも対応予定です。https://t.co/Asl2aA5LXI
— Atsushi Sakai (@Atsushi_twi) 2022年2月6日
2つ目は、疎行列特異値分解関数scipy.sparse.linalg.svdsに新しいsolverである、PROPACKが追加されました。既存のARPACKと比べて、パフォーマンスが良いらしいのですが、Windowsではまだ問題があり、デフォルトにはなっていません。ただ将来的にはデフォルトになりそうです。https://t.co/6O3l8brh9w
— Atsushi Sakai (@Atsushi_twi) 2022年2月6日
三つ目はUNU.RANというCライブラリをベースとした一変量の連続分布と離散分布からサンプルを得るための乱数生成モジュールscipy.stats.samplingが追加されました。パフォーマンスが良く、大量の乱数を高速に生成可能らしいです。: https://t.co/SFssklah3w
— Atsushi Sakai (@Atsushi_twi) 2022年2月6日
最後に今回の自分の貢献をアピールさせてもらうと、大域最適ソルバーであるoptimize.basinhoppingの探索パラメータをチューニングできるようにしたことと、optimize.minimizeの様々なソルバーの評価関数Call回数評価のバグをまとめて直したりしました。https://t.co/LJkBTFsscv
— Atsushi Sakai (@Atsushi_twi) 2022年2月6日
後者は結構自分でも困るときがあったので、直って嬉しい人がいるかもしれません。(例えば、コスト関数評価の時間がかかり、ある規定時間以内にNelder-meadとかで、今よりもいいパラメータが欲しい場合などに、最適化が安定するんじゃないかなと思います)
— Atsushi Sakai (@Atsushi_twi) 2022年2月6日
1.8.0は少し小粒感がありますが、1.9.0はかなり大きな変更が入りそうです。まずPython 3.10でdistutilsが非推奨になったので、SciPyのビルドシステムがmesonベースに一新されます。すでにコアチームでは試用していますが、差分buildが賢くなり、かなり開発が楽になっています。https://t.co/uZJC9bsnXM
— Atsushi Sakai (@Atsushi_twi) 2022年2月6日
あと個人的な一番うれしい期待は、ついにscipy.optimizeの様々なソルバーに、整数制約を付けられるようになったことです。これによりoptimize.linprogで混合整数問題を解くことが出来るようになります。また、他のソルバーでも整数制約を付けられるようになりそうです。https://t.co/USm7Q0TvnE
— Atsushi Sakai (@Atsushi_twi) 2022年2月6日
参考資料
MyEnigma Supporters
もしこの記事が参考になり、
ブログをサポートしたいと思われた方は、
こちらからよろしくお願いします。