
Pythonライブラリの紹介
概要
ライブラリとは簡単に言うと「Pythonで特定の目的に作えるめっちゃ便利なコード(ファイル)」です。Pythonで何ができる≒どのライブラリを使うのと同義だと思っています。
ライブラリには大きく分けて標準ライブラリ(Pythonで最初から使えるもの)と外部ライブラリ(pip installを用いて個別でインストールするもの)の2つがあります。
本記事では各ライブラリの使い方ではなく、どのようなライブラリがあり何に使えるかを紹介します。詳細ではなく私がよく使うものに絞り、おすすめには★をつけました。
1.ファイル・フォルダ操作(標準ライブラリ)
ファイル・フォルダのパス取得・削除・移動・名前変更などができます。
●os:ファイル・フォルダのパス取得・削除・移動・名前変更やファイルの存在確認などができます。
●shutil:osでできない操作が可能です。(ファイルがあるフォルダごと削除)
●glob:主にファイルパスをまとめて取得します。(拡張子の指定可能)
●sys:pathを通します(モジュールやファイルが読み込めない時に使う)
2.Webアプリ
ウェブアプリ(所謂ホームページ)みたいなものを作成できます。作ったコードを社内の人にGUIで使用してもらうときに使用します。(一般的にはサーバーにアップロードしてウェブアプリとして使用すると思います。)
●Flask:軽量かつ簡単に使いやすい。
●Dash:データの可視化が得意
●Django:詳細なウェブアプリを作れる。(学習が難しいため私は使用したことがないです)
●Streamlit★:簡単かつ爆速でウェブアプリが作成可能
3.Excel操作
Excelから情報を抽出・整形・加工(計算)などが可能です。抽出したデータを使用して可視化(グラフ作成)もできます。
●Pandas★:csv, excelなどから表形式データを抽出でき、様々な処理が可能です。元データの情報がいらなければとりあえずPandasで処理がオススメ!
●Openpyxl:Excelからデータ処理が可能です。Pandasでは元Excelの体裁が維持したりvbaを残したりできないため、それが必要な時に便利です。
※openpyxlは旧形式のxlsが処理できないのが玉に瑕
●xlwings:ExcelのVBAをPythonで実行したいときに使用した。下記のようにpythoncomが必要だったため、できることはPythonで記載するのがオススメ
import xlwings
import pythoncom
def edit_excel(path):
pythoncom.CoInitialize()
exapp = xlwings.App(visible=False)
book = exapp.books.open(path)4.可視化(グラフ化)
データからグラフを書くツールです。
●matplotlib★:機械学習で人気のツール。癖があるけど機械学習の本では絶対出てくるため覚えておいた方がいい
●seaborn★:matplotlibとほぼ同じ(個人的にはこっちの方が書きやすい)。とにかくpairplotメソッドだけでも覚えておくと便利
●Graphviz:文字と線をつなぐ図を書ける。また機械学習の決定技のグラフ化とかで使われます。
●Plotly:何かで使った気がします・・・
●Altair:Streamlitで使いました。(癖があるので個人的には苦手です・・)
5.画像処理
写真や動画のデータを抽出・加工します。
●Pillow(PIL):写真データの加工(拡大・縮小、回転、反転など)ができます。使い方は簡単です。
●OpenCV:写真データ加工に加えて画像認識や物体検出もできます。学習はかなり難しいです。
6.メール送信
yahooメール、G-mail、Outlookを操作してメール処理します。
●smtplib:上記メールソフトを使用してメールの送付が可能です。リマインダーメールなどで使用すると便利です。
7.OCR操作(PDFの読み取り)
PDFから文字を取得可能です。(通常業務ではOCRを使わないため、どのくらい精度があるかまで理解はできておりません)
●tabula-py
●PyPDF2
8.HTTP通信
HTTPの通信ができます。具体的には下記スクレイピングで使う情報をURLから取得したり、URL上のファイルをダウンロードできます。
●Requests:requests.get(url)で指定URLからページHTML(スクレイピングで使うための情報取得)を取得できます。
●Urllib:下記コードで指定URLからファイルをダウンロードします。
import urllib
urllib.request.urlretrieve(download_url, save_dir)9.スクレイピング
ウェブアプリ(ホームページ:以下HP)からほしい情報を抽出したり、普段ブラウザを見ながら人する操作する(クリック、情報入力、スクショなど)をしたりすることが可能です。
●Selenium:ブラウザを操作してスクレイピングします。(細かいことは理解できていないですが)ブラウザで操作するため、javascriptが動作するHPではSeleniumの方が便利です。
●helium★:HTMLの要素を見なくても、HP上の文字から操作可能。firefoxとChromeにしか対応していないのが玉に瑕
●Beautiful Soup4:ブラウザを使用しないため環境構築(ライブラリを使うための準備)は楽です。文字情報の取得は簡単ですが(個人的に)画像取得やログイン操作も含めるとSeleniumの方があっというときに楽です。
10.機械学習・深層学習(ディープラーニング)
機械学習でよく使用されるライブラリを記載します。(上記と重複あり)
●Pandas:Excel、CSV操作
●Numpy:線形代数の処理が可能
●Matplotlib:可視化(グラフ化)
●Pytorch:機械学習フレームワーク(基本的に何でもできます)
●Keras・Tensorflow:機械学習フレームワーク(基本的に何でもできます)
●XGBoost・LightGBM:勾配ブースティングと呼ばれる手法を使用したライブラリであり、表データの回帰分析は抜群の精度を出してくれます。
●Prophet:時系列解析が可能です。