読者です 読者をやめる 読者になる 読者になる

paiza開発日誌

paiza(https://paiza.jp)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

Pythonエンジニアが紹介する、Pythonの超便利なライブラリ・フレームワーク13個

プログラミング初心者 プログラミング学習 フレームワーク 開発ネタ

f:id:paiza:20161227121203j:plain
Photo by hoerner_brett
秋山です。

私は主にPythonを使って開発をしているので、今回はPythonの便利なライブラリやフレームワークを紹介していきたいと思います。

と言っても割と定番のものを中心に使っているので、既にPythonをがんがん使っている人にとっては「知ってるわ!」というものも多いかと思いますが。「最近Python書くようになりました~」という人たちにも「これ良い!」ってものが見つかればと思います。

ちなみに前回はPython2系と3系の違いについて書いてますので、「3系に移行しよっかなー」と考えている人は合わせて見てみてください。
paiza.hatenablog.com

Pythonの便利なライブラリやフレームワーク

◆Web開発系フレームワーク

Django

f:id:paiza:20161226221604p:plain
みんな大好き有名なDjangoRubyで言うところのRailsのような……全部のせ的なフレームワークです。管理画面が簡単にジェネレートできるのも大変よいと思ってます。

Bottle

f:id:paiza:20161226221752p:plain
Bottleは有名かどうかはわかりませんが、薄くて軽ーいフレームワークです。薄くて軽いと言うか、ルーティングとかぐらいしか機能がないです。

業務で使うには足りないと思うので、趣味的な開発をちょっとしたい、軽いフレームワークをちょっと入れたい~みたいな時によいです。実際、自分も仕事ではなく家で趣味で開発するときによく使います。ただ、データベースやCSRF等の機能はほとんどないので、必要に応じて別のライブラリを読み込まないといけないですね。

◆データ処理、数値計算

数値計算系のはほぼScyPyプロジェクトのものですね。

NumPy

f:id:paiza:20161226222258p:plain
メジャーな数値計算用ライブラリですね。Pythonは、数値計算を素直に書くと処理が遅めな言語ではありますが、NumPyを使えばC言語のネイティブコード上で計算してくれるのでめちゃくちゃ早くなります。

pandas

f:id:paiza:20161227143647p:plain
こちらも速度が必要な部分はC言語などで書かれているので高速に動いてくれるデータフレームライブラリです。時系列データなどの扱いが大変楽になってよいです。あと欠損値の補完や変形など、楽にデータ操作をするための機能が多数あるところもよいです。

matplotlib

f:id:paiza:20161226222751p:plain
↑のNumPy向けのグラフ描画ライブラリです。NumPypandasと合わせてよく使われています。

SciPy library

f:id:paiza:20161226223046p:plain
↑の3つとさらに加えて使われてたりします。科学系の計算とかいろんな計算ができますよ。

Jupyter

f:id:paiza:20161226223225p:plain
これはライブラリというかPythonで分析をした際の記録用ツールで、コードやコメント、データなどをひとまとめに残しておけるツールです。

さらにpy_d3を使うとJupyter内でd3.jsのグラフ等も表示できるようになって、より見た目をよくすることができます。逆に見た目は別に気にしないという場合は↑のmatplotlibだけで充分かもしれません。

◆UIとかゲーム関連

kivy

f:id:paiza:20161227114359p:plain
クロスプラットフォームのUIライブラリです。スマホとかマルチタッチ対応もできるのが便利です。

cocos2d

f:id:paiza:20161227114533p:plain
今さら紹介する必要なさそうな言わずと知れたゲームライブラリですね。Objective-CやSwiftでゲームが作れるということで有名ですが、実はPythonがオリジナルです。

◆スクレイプとかAPI叩く関連

Requests

f:id:paiza:20161227115030p:plain
httpでWebサイトのデータを取るときとかに使えます。Pythonの標準ライブラリだけでも取れますが、Requestsを使うともっとわかりやすく書けます。特にAPI叩きたいときは可読性も上がるし楽です。

lxml

f:id:paiza:20161227115108p:plain
lxmlを使うと、xmlやhtmlをパースしたりすることができます。Seleniumと組み合わせて使えば、スクレイプとかに大変便利です。

Scrapy

f:id:paiza:20161227115341p:plain
自前でスクレイプしたいとき、小規模ならRequests,Seleniumを使う、大規模ならScrapyを使う……というふうにするのがいいんじゃないかなと。Scrapyはスクレイプフレームワーク全部盛りみたいなものだと思ってます。

◆その他

Twython

f:id:paiza:20161227143532p:plain
Twitter APIのラッパーですね。たまにTwitter関連のデータ集計が必要なときに使ってます。

■まとめ

割と定番のものを中心に紹介してきました。このほかにも、Pythonには機械学習のためにデータを処理するライブラリ(数値演算をするためのライブラリとか図を作成するライブラリとか)がそろっていて、呼び出したり組み合わせて処理したりしやすいので、最近はたくさんの人が機械学習Pythonを使ったり勉強を始めたりしてますねー。

paizaでもPythonが学べる動画学習コースを公開していますので、初心者だけどPythonに興味ある!という人はぜひのぞいてみてください。

paiza.jp

Pythonの学習レッスン動画も公開中!プログラミング学習コース

f:id:paiza:20160830130051j:plain
paizaでは、未経験者でも動画を通してプログラミング等が学べる「paizaラーニング」を公開しております。

paizaラーニングでは、paizaの人気美少女キャラクター霧島京子(cv:上間江望)が、かわいい声で優しく・楽しく・わかりやすくプログラミングを教えてくれます。「霧島京子による1本3分程度のレッスン動画」に加え、「ブラウザ上でコードを書いて実行できるオンライン実行環境」「複数の練習問題」で、初心者でも無理なくプログラミングを習得することができます。

paiza.jp




paizaではスキルのあるエンジニアがきちんと評価されるようにし、技術を追い続ける事が仕事につながるようにする事で、日本のITエンジニアの地位向上を図っていければと考えています。特にpaizaではWebサービス提供企業などでもとめられる、システム開発力や、テストケースを想定できるかの力(テストコードを書く力)などが問われる問題を出題しています。

テストの結果によりS,A,B,C,D,Eの6段階でランクが分かります。自分のプログラミングスキルを客観的に知りたいという方は是非チャレンジしてみてください。

http://paiza.jp

プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編