2020年、注目を集めるプログラミング言語Python。Google検索データをもとに発表されるPYPL(PopularitY of Programming Language)では2018年から3年連続1位を記録、日経xTECHが2019年に実施した「プログラミング言語実態調査」でもC/C++に次ぎ、2位をマークしました。
なぜ、Pythonはここまでの注目を集めているのでしょうか? また、Pythonを今から学び始めるならまずは何をすべきでしょうか?
初心者が知っておくべきPythonの哲学から始めるための手順まで基礎知識をまとめてご紹介します。
Pythonは“機械学習やデータ解析分野で大きなシェアを占めるプログラミング言語”です。また、YouTubeやInstagram、DropboxといったWebサービスの開発で使われたことでも知られています。
この言語は1994年にオランダ出身のプログラマGuido van Rossum(グイド・ヴァンロッサム)氏によって開発されました。Pythonという名前はグイド氏が好んで見ていたイギリスのコメディ番組『Monty Python’s Flying Circus(空飛ぶモンティ・パイソン)』に由来します。もともとグイド氏がクリスマス休暇に趣味がてらつくりはじめたプログラムなので、名前にも遊び心が盛り込まれているんですね。
Pythonの主要な特徴は以下の3ポイントです。
Pythonはシンプルで読みやすいため、プログラム初心者も学びやすい言語です。
例えば、同じ「変数xに5を代入し、xが2よりも大きいとき”xは2よりも大きい”と出力する」プログラムを書く場合でも、PythonとJavaなどほかのプログラミング言語では記述量に差があります。
x = 5
if x > 2:
print("xは2より大きい")
class Main {
public static void main(String[] args) {
int x = 5;
if (x > 2){
System.out.println("xは2より大きい");
}
}
}
「動的型付け言語」に分類されるPythonは「int」「float」「str」などのデータ型を指定する必要がありません。また、インデント(改行)でひとかたまりを表現するので「カギカッコ」の記述も省略できます。
ちなみに、Pythonには「PEP 20 — The Zen of Python」という設計指針があり、その中には以下のような項目があります。
・Simple is better than complex.(シンプルは複雑より良い。)
・Readability counts.(読みやすさは重要だ。)
“シンプルでわかりやすいこと”はPythonの基礎概念だといえるでしょう。
Pythonは書いたコードを一行ごとに機械語に変換し、実行するインタプリタ言語です。そのため、ライムラグなく正しく動くか確認して、逐次修正することができます。
一方、C++のようなコンパイラ言語はプログラムをコンパイラを通して機械語に変換する必要があるため、コードの実行・修正までに時間がかかります。
ただし、インタプリンタ言語にはコンパイラ言語よりも実行速度自体は遅くなってしまうという欠点もあります。とはいえ、速度が求められるデータ解析やYouTubeなどの大規模サービスにおいても活用されていることから、Pythonで書いたプログラム自体には十分な速度を担保できる場合も多いことがわかります。
Pythonとよく比較されるプログラミング言語「R」もインタプリタ言語です(RとPythonの違いはコチラ)。
ライブラリとは、自分のプログラムに組み込んで使える部品のようなプログラムのまとまりです。Pythonはダウンロードした時点で豊富に標準ライブラリを有しているため、最初から幅広い操作やデータ処理に対応することができます。このような特徴はPythonのbatteries included(バッテリ梱包)という哲学のもと備えつけられました。
またインストールの必要がある外部ライブラリも豊富で、scikit-learn、NumPy、pandas、Matplotlibなどは機械学習・データ解析においてかかせません(scikit-learnについて詳しくはコチラ)。NumPyやpandasは主要なコードがC言語やC++で実装されているため、速度も十分に担保できるのです。
Pythonにより実現できることを詳しく見ていきましょう。
Pythonは人工知能開発の中心技術、機械学習に適したライブラリを豊富に持っています。例えば前述のscikit-learnは代表的なPythonの機械学習ライブラリ。「分類」「回帰」「次元圧縮」「クラスタリング」など機械学習の手法に幅広く対応しています。
Googleが開発した機械学習用のライブラリTensorFlowもPythonを主要言語としています。
PythonはIoT技術の導入にも大きく貢献してくれます。マイコン(非常にちいさいコンピュータ)上で動くことを想定して開発されたMIcroPythonはIoT開発に直結します。また安価にIoTを実現できるRaspberry Pi (ラズパイ)にPythonは標準でインストールされています。
データの取得から前処理、グラフや分布図による可視化までデータ分析・データ解析のほとんどをPythonはカバーしています。データを取り扱うことに長けているからこそ、人工知能開発でも有用なわけですね。
ブラウザの自動操作やWebスクレイピング(Webサイトからのデータ抽出)、画像の編集・加工、Excel・Wordの操作などさまざまな作業をPythonによって自動化することができます。関連するライブラリとして、Selenium、Pillow(PIL Fork)、Beautiful Soup4などが存在します。
前述の通りPythonはYoutubeやInstagramといったWebサービスの開発で使われています。またほかにも3DCGソフトウェアBlenderや音楽配信サービスSpotifyなどのデスクトップアプリもPythonが開発に貢献したものの一種です。PythonによるWeb開発では、DjangoなどのWebフレームワーク(アプリ開発に適した機能の集まり)がよく用いられます。
Pythonの哲学やその機能の多様さを知り「早速Pythonを初めたい!」と考えた方もいるのではないでしょうか。
最後に、Pythonの始め方のうち代表的な3パターンをご紹介します。
Pythonを始める最も基本的な方法は、当然ながらPythonの公式サイトから直接ダウンロードすることです。
サイトトップのダウンロードタブから、OSにあった項目を選びましょう。3.x系と2.x系がありますが、初心者が0から始める場合は3.x系の最新バージョンを利用するのがベターです。2.x系の最新バージョンであるPython2.7は2020年の1月1日にサポート終了しました。
よりPython初心者におすすめの手法がPythonのディストリビューションAnacondaをダウンロードする方法です。
Anacondaには前述のscikit-learn、pandasといった便利な外部ライブラリやJupyterLab、SpyderといったPythonの開発を助けるツールがPythonとセットになっています。そのため、環境構築に手間がかかりません。
Anacondaも公式サイトのダウンロードページよりダウンロードできます。
Google Colaboratoryは機械学習の教育・学習を目的としたGoogleが提供のWebサービスです。Googleアカウントを使ってログインしサイトにアクセスするだけで、すぐにPythonの記述を始めることができます。提供される環境はPythonの開発環境としてポピュラーなJupyter Notebookをベースとしており、scikit-learnやpandasも最初からインストールされています。
また、Google ColaboratoryにはGoogleのGPU・TPUを利用し大規模データ処理を高速で行える、Google Driveを利用して簡単にコードを共有できるといった大きなメリットがあります。
この記事では、Python初心者が知っておくべき基本をまとめてご紹介しました。
とにかく“シンプルで幅広い可能性を持つ”プログラミング言語であることが伝わったのではないでしょうか? 2020年現在人気最上位のプログラミング言語となっていることも納得ですね。
前述の通り無償で始められるため、まずは実際に簡単なコードを書いてPythonの世界へ一歩踏み出してみてください!
(宮田文机)
メルマガ登録をしていただくと、記事やイベントなどの最新情報をお届けいたします。
30秒で理解!インフォグラフィックや動画で解説!フォローして『1日1記事』インプットしよう!