🚀⚡新しいオープンソース⚡ VS. 古いオープンソース 🦖
TL;DRまとめ
この記事では、主流のPythonライブラリに代わるものを紹介しています。
そういったものがPythonの世界にもたらした価値は、主流のライブラリが活発なコミュニティに支えられているにも関わらずです。
ライブラリを選ぶのは、使い方や個人の好みによります。
- Taipy を Streamlit の代わりに
Taipyは新参者です。Streamlitと同様に、TaipyはインタラクティブなGUIを簡単に構築する手段を提供しますが、
Streamlitの限界や非効率的な点を克服しています。
- 同期/非同期コールの管理
- ノートブックとの完全な互換性
- マルチユーザー対応
- レイアウト、スタイリングなどのカスタマイズ機能が豊富 (CSS不要)
- ビッグデータのサポート
- パフォーマンスが向上
コミュニティを成長させるためのあらゆる手助けに感謝します 🌱
- Polars を Pandas の代わりに
Polars は Python の王、Pandas に触発されました。Pandas と同様に、Polars はデータを扱うための DataFrame ライブラリですが、特に大規模なデータセットを処理する際に優れています。
Polars は以下の二つの主な理由で Pandas よりも 10 から 100 倍高速です:
- Polars の組み込み並列処理
- Rust で書かれている
Polars が Pandas を置き換えるのか。それは時間が教えてくれるでしょう。
- Dask を PySpark の代わりに
Dask は メモリを超えた計算と並列計算を処理することができます。
計算をスケールアップさせたい場合にはとても便利なツールです。Python でネイティブに書かれているため、Python 開発者にとって習得や使用が楽です。
超大規模なデータ(2TB以上)や、SQLのようなクエリを扱う場合には(Sparkと比較して)設計されていないため、ノートパソコンでの実行に最適です。
- LightGBM を XGBoost の代わりに
XGBoostもLightGBMも勾配ブースティングライブラリです。
XGBoostはKaggleでのお気に入りですが、大規模なデータセットを扱う際には、LightGBM は並列処理で最適化されています。
- PyCaret を Scikit-learn の代わりに
Scikit-learnと同様、PyCaretを使えば機械学習タスクを実行できます。
PyCaretはよりシンプルなコードを通じてその機能を紹介しており、これがMLプロジェクトに取り組み始める際の大きな利点です。
PyCaretは学習が簡単で、以下のようなハイレベルな機能を持っています。
- EDA(探索的データ分析)とデータ処理
- モデリング/トレーニング
- モデルの可解釈性
- モデルのデプロイメント
ML愛好家や、深い分析の時間がないシニアデータサイエンティストにとって、PyCaretはとても優れたツールです!
- Darts を tsfresh の代わりに
両方のライブラリは時系列データに特化していますが、目的が異なります。
Dartsは時系列データの「sklearn」として、DSが時系列データを扱う際に必要なさまざまな機能を網羅しています:
- データ検索
- データ前処理
- 予測
- モデル評価/選択
もう複数のライブラリを使う必要はありません。Dartsですべてが利用可能です。
tsfreshはMLトレーニングの準備として最も挑戦的なステップの1つである特徴抽出と選択を自動化することについてです。
tsfreshは時系列データから様々な特徴を抽出し、関連するものを特定する手助けをします。
- PyTorch を TensorFlow の代わりに
どちらもディープラーニングに携わるデータサイエンティストや研究者にとっての定番ライブラリです。
TensorFlowは数年前に主流でしたが、2020年から2021年にかけて、PyTorchはTensorFlowに追いついています。
これら2つの素晴らしいライブラリからどうやって選ぶのでしょうか?
PyTorchは研究で優位性があり、NLP(自然言語処理)により大きな焦点を当てています。
さらに、Pythonらしい感じで学習曲線が緩やかです。
ディープラーニングを始めたばかりの場合はPyTorchを使ってみることをお勧めしますが、そうでなければ、どちらのライブラリも似たりよったりです。
- Arcade を Pygame の代わりに
Pythonの2Dゲームシーンにおいて、Pygameは堅牢な評判を獲得していますが、Arcadeは新しいながらもしっかりと確立されたライブラリで、次のような特性で際立っています:
- 組み込みのゲームループ
- 効率的なイベントモデル
- より多くの機能
- よりユーザーフレンドリー
両方のライブラリにはそれぞれの利点がありますが、Arcadeは初心者にとってより適したオプションです。
Pygameは新しい開発者にとってより適した教育用の代替品であるPygame Zeroを提供しています。
- spaCy を NLTK の代わりに
NLTKは自然言語処理の主流ライブラリで、多くの機能を持っています。
しかし、複雑さが増すと学習曲線も急になります。spaCyはこの分野を始めるための良い選択肢です。
spaCyのもう一つの大きな利点は、速度と効率を重視するNLPアプリケーションを構築するために開発されていることです。
- Ruff を Pylint の代わりに
リンターはどんなコーディングの旅にも不可欠な部分です。
Pylintは広く使われていますが、Ruffはそのプロセスに効果性と速さを加えます。
同等のリンターよりも10~100倍高速とされるRuffは、Pylintの代替として確認する価値のあるライブラリです。
この記事をお楽しみいただけましたか?🙂
私はまだ未熟なライターで、改善のための提案はいつでも歓迎です!
もし、一般的なものよりもお気に入りのライブラリがあればぜひ共有してください。
こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/taipy/new-open-source-vs-old-open-source-33k7