1. はじめに
Pythonは今やデータサイエンティストにとって最も人気の言語となりました。実際に開発者の75%以上が、Pythonがデータサイエンティストにとってもっとも重要なスキルの一つであると主張しています。Pythonは、GitHub Octoverseによる調査で、ソフトウェア開発のプラットフォームGitHubで最も人気のある言語としてJavaを抜き2位に踊り出ました。この記事では、そんな人気言語Pythonのトップ10のオープンソースプロジェクトを紹介したいと思います。
2. オープンソースプロジェクト
2.1 Manim
Ranking: 15.7k stars
ManimまたはMathematical Animation Engineは、数学ビデオの説明用のアニメーションエンジンです。 基本的に、プログラムでアニメーションを作成するために使用されます。 ManimはPython 3.7で実行されます。
以下にManimで作られた数学ビデオの説明用のアニメーションをご紹介致します。
ManimのGithubはこちらです。
2.2 Python Robotics
Ranking: 7.7k stars
Python Roboticsは、ロボット工学アルゴリズムのPythonコードのコレクションです。このプロジェクトは、主に自律航法(自車の位置をほかからの情報を得ることなく、基点からの方位および距離センサーからの信号を積算して算出する航法)に使用されます。コードは、各アルゴリズムの基本的な考え方を理解するために非常に読みやすくコーディングされています。 Python RoboticsはPython 3.7で実行され、要件にはNumPy、SciPy、Matplotlib、Pandas、およびcvxpyが含まれます。
Python RoboticsのGithubはこちらです。
2.3 XSStrike
Ranking: 7.4k stars
XSStrikeは、高度なXSS検出スイートです。 強力なファジィエンジンを持ち、ファジーマッチングを使用して誤った結果をゼロにします。XSStrikeは、複数のパーサーで応答を分析し、ファジングエンジンと統合されたコンテキスト分析によって機能することが保証されているペイロードを作成します。 また、クロール、ファジング、パラメーター検出、WAF検出機能も備えています。
XSStrikeのGithubはこちらです。
2.4 Google Images Download
Ranking: 6.2k stars
Google Images Downloadは、数百のGoogle画像を「検索」および「ダウンロード」するコマンドラインPythonプログラムです。 このPythonスクリプトを使用すると、Google画像でキーワード/キーフレーズを簡単に検索し、オプションで画像をダウンロードできます。 このプログラムは、Pythonの両方のバージョン(2.xおよび3.x)と互換性があります。
Google Images DownloadのGithubはこちらです。
2.5 Photon
Ranking: 6.1k stars
Photonは、OSINTまたはオープンソースインテリジェンスツール用に設計された高速クローラーです。 データのクロール中、PhotonにはURL(範囲内および範囲外)、パラメーター付きURL、電子メール、ソーシャルメディアアカウント、Amazonバケットなど、pdf、png、XMLなどのファイルを抽出する機能があります。、秘密鍵(認証/ APIキーとハッシュ)、カスタム正規表現パターンに一致する文字列など。 現在、PhotonはPythonバージョン2.x-3.xと互換性があります。
PhotonのGithubはこちらです。
2.6 NeuralTalk
Ranking: 5.1k stars
NeuralTalkは、Microsoftの「Microsoft Common Objects in Context(MS COCO)」という10万組に及ぶ様々なシチュエーションの画像-キャプションのセットを含んだデータセットを使って学習しており、入力された画像を認識しキャプションを生成します。さらに、NeuralTalk2は、Luaで記述されたトーチを必要とする効率的な画像キャプションコードで、このプロジェクトはバッチ処理され、GPUで実行されるため、NeuralTalkよりも高速です。Python 2.7および最新バージョンのNumPy、SciPy、Perlで実行されます。
NeuralTalkのGithubはこちらです。
2.7 Trape
Ranking: 4.5k stars
TrapeはOSINT分析および研究ツールであり、人々がインテリジェントなソーシャルエンジニアリング攻撃をリアルタイムで追跡および実行できるようにします。 これは、大規模なインターネット企業がWebサイトやサービスのセッションのステータスなどの機密情報を取得し、事前の知識なしにブラウザでユーザーを制御する方法を教えることを目的として作成されました。
TrapeのGithubはこちらです。
2.8 Xonsh
Ranking: 3.5k stars
Xonshは、Python製のシェルです. 発音はコンシュと公式にありました。この言語は、BashとIPythonから慣れ親しんだ追加のシェルプリミティブを持つPython 3.4+のスーパーセットです。これは、Linux、Mac OSX、およびWindowsを含むすべての主要なシステムで動作します。
XonshのGithubはこちらです。
2.9 Rebound
Ranking: 3.1k stars
Reboundは、コンパイラエラーが発生したときにスタックオーバーフローの結果を即座に取得するコマンドラインツールです。 リバウンドはPythonで書かれており、Urwid上に構築されています。 このプロジェクトでは、Beautiful Soupを使用して、スタックエラーのコンテンツとサブプロセスをスクレイピングし、コンパイラエラーをキャッチします。 Python 3.0以降が必要です。
ReboundのGithubはこちらです。
2.10 Snips NLU
Ranking: 3.1k stars
Snips NLU(Natural Language Understanding)は、自然言語で書かれた文から構造化された情報を抽出できるPythonライブラリです。 このライブラリは、Snips Consoleで使用されるNLUエンジンを強化し、プライベートバイデザインの音声アシスタントを作成するために使用できます。
Snips NLUのGithubはこちらです。
3. 終わりに
如何でしょうか。これ以外にも有益なオープンソースプロダクトなど沢山ありますが、やはり画像やスクレイピングやクローラ等のオープンソースプロダクトにより、統計分析や予測モデル開発に現場で実際に使われるプロダクトが多いのも特徴的でした。
Pythonを学習している方は、これらのライブラリを使い、オリジナルのツールを作ってみても面白いのではないでしょうか。