paiza times

paizaがお届けする、テック・キャリア・マネジメント領域における「今必要な情報」を届けるWebメディア

logo

paizaがお届けする、テック・キャリア・マネジメント領域の「今必要な情報」を届けるWebメディア

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
みんな大好き有名なDjango。Rubyでいうところの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は、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

paizaのおすすめコンテンツ

PPG proken プログラミングゲーム「初恋 プログラミング研究会〜海に行こうよ〜」 PPG Bingo プログラミングゲーム「コードレビューBINGO!!」
paiza転職 paiza新卒 EN:TRY paizaラーニング 記事内に記載している情報は、記事公開時点でのものとなります。 Copyright Paiza, Inc, All rights reserved.