いまさら聞けないIT用語:注目のプログラミング言語「Python(パイソン)」とは? データ解析や機械学習で人気の理由とは? | データで越境者に寄り添うメディア データのじかん
カテゴリー
キーワード

いまさら聞けないIT用語:注目のプログラミング言語「Python(パイソン)」とは? データ解析や機械学習で人気の理由とは?

         

2020年、注目を集めるプログラミング言語Python。Google検索データをもとに発表されるPYPL(PopularitY of Programming Language)では2018年から3年連続1位を記録、日経xTECHが2019年に実施した「プログラミング言語実態調査」でもC/C++に次ぎ、2位をマークしました。

なぜ、Pythonはここまでの注目を集めているのでしょうか? また、Pythonを今から学び始めるならまずは何をすべきでしょうか?

初心者が知っておくべきPythonの哲学から始めるための手順まで基礎知識をまとめてご紹介します。

Pythonとは何か(基礎知識・豆知識)

Pythonは“機械学習やデータ解析分野で大きなシェアを占めるプログラミング言語”です。また、YouTubeやInstagram、DropboxといったWebサービスの開発で使われたことでも知られています。

この言語は1994年にオランダ出身のプログラマGuido van Rossum(グイド・ヴァンロッサム)氏によって開発されました。Pythonという名前はグイド氏が好んで見ていたイギリスのコメディ番組『Monty Python’s Flying Circus(空飛ぶモンティ・パイソン)』に由来します。もともとグイド氏がクリスマス休暇に趣味がてらつくりはじめたプログラムなので、名前にも遊び心が盛り込まれているんですね。

Pythonの主要な特徴は以下の3ポイントです。

特徴1:シンプルで学びやすい


Pythonはシンプルで読みやすいため、プログラム初心者も学びやすい言語です。

例えば、同じ「変数xに5を代入し、xが2よりも大きいとき”xは2よりも大きい”と出力する」プログラムを書く場合でも、PythonとJavaなどほかのプログラミング言語では記述量に差があります。

Python

x = 5
if x > 2:
    print("xは2より大きい")

Java

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の基礎概念だといえるでしょう。

特徴2:書いたコードをすぐに実行できる


Pythonは書いたコードを一行ごとに機械語に変換し、実行するインタプリタ言語です。そのため、ライムラグなく正しく動くか確認して、逐次修正することができます。

一方、C++のようなコンパイラ言語はプログラムをコンパイラを通して機械語に変換する必要があるため、コードの実行・修正までに時間がかかります。

ただし、インタプリンタ言語にはコンパイラ言語よりも実行速度自体は遅くなってしまうという欠点もあります。とはいえ、速度が求められるデータ解析やYouTubeなどの大規模サービスにおいても活用されていることから、Pythonで書いたプログラム自体には十分な速度を担保できる場合も多いことがわかります。

Pythonとよく比較されるプログラミング言語「R」もインタプリタ言語です(RとPythonの違いはコチラ)。

特徴3:ライブラリが豊富


ライブラリとは、自分のプログラムに組み込んで使える部品のようなプログラムのまとまりです。Pythonはダウンロードした時点で豊富に標準ライブラリを有しているため、最初から幅広い操作やデータ処理に対応することができます。このような特徴はPythonのbatteries included(バッテリ梱包)という哲学のもと備えつけられました。

またインストールの必要がある外部ライブラリも豊富で、scikit-learnNumPypandasMatplotlibなどは機械学習・データ解析においてかかせません(scikit-learnについて詳しくはコチラ)。NumPyやpandasは主要なコードがC言語やC++で実装されているため、速度も十分に担保できるのです。

Pythonでできること

Pythonにより実現できることを詳しく見ていきましょう。

人工知能開発


Pythonは人工知能開発の中心技術、機械学習に適したライブラリを豊富に持っています。例えば前述のscikit-learnは代表的なPythonの機械学習ライブラリ。「分類」「回帰」「次元圧縮」「クラスタリング」など機械学習の手法に幅広く対応しています。

Googleが開発した機械学習用のライブラリTensorFlowもPythonを主要言語としています。

IoT技術の導入


PythonはIoT技術の導入にも大きく貢献してくれます。マイコン(非常にちいさいコンピュータ)上で動くことを想定して開発されたMIcroPythonはIoT開発に直結します。また安価にIoTを実現できるRaspberry Pi (ラズパイ)にPythonは標準でインストールされています。

データ分析・データ解析


データの取得から前処理、グラフや分布図による可視化までデータ分析・データ解析のほとんどをPythonはカバーしています。データを取り扱うことに長けているからこそ、人工知能開発でも有用なわけですね。

業務自動化


ブラウザの自動操作やWebスクレイピング(Webサイトからのデータ抽出)、画像の編集・加工、Excel・Wordの操作などさまざまな作業をPythonによって自動化することができます。関連するライブラリとして、SeleniumPillow(PIL Fork)Beautiful Soup4などが存在します。

Web開発


前述の通りPythonはYoutubeやInstagramといったWebサービスの開発で使われています。またほかにも3DCGソフトウェアBlenderや音楽配信サービスSpotifyなどのデスクトップアプリもPythonが開発に貢献したものの一種です。PythonによるWeb開発では、DjangoなどのWebフレームワーク(アプリ開発に適した機能の集まり)がよく用いられます。

Pythonの始め方

Pythonの哲学やその機能の多様さを知り「早速Pythonを初めたい!」と考えた方もいるのではないでしょうか。

最後に、Pythonの始め方のうち代表的な3パターンをご紹介します。

1.Pythonを直接ダウンロードする


Pythonを始める最も基本的な方法は、当然ながらPythonの公式サイトから直接ダウンロードすることです。

サイトトップのダウンロードタブから、OSにあった項目を選びましょう。3.x系と2.x系がありますが、初心者が0から始める場合は3.x系の最新バージョンを利用するのがベターです。2.x系の最新バージョンであるPython2.7は2020年の1月1日にサポート終了しました。

2.Anacondaをインストールする


よりPython初心者におすすめの手法がPythonのディストリビューションAnacondaをダウンロードする方法です。

Anacondaには前述のscikit-learn、pandasといった便利な外部ライブラリやJupyterLabSpyderといったPythonの開発を助けるツールがPythonとセットになっています。そのため、環境構築に手間がかかりません。

Anacondaも公式サイトのダウンロードページよりダウンロードできます。

3.Google Colaboratoryを使う


Google Colaboratoryは機械学習の教育・学習を目的としたGoogleが提供のWebサービスです。Googleアカウントを使ってログインしサイトにアクセスするだけで、すぐにPythonの記述を始めることができます。提供される環境はPythonの開発環境としてポピュラーなJupyter Notebookをベースとしており、scikit-learnやpandasも最初からインストールされています。

また、Google ColaboratoryにはGoogleのGPU・TPUを利用し大規模データ処理を高速で行える、Google Driveを利用して簡単にコードを共有できるといった大きなメリットがあります。

終わりに

この記事では、Python初心者が知っておくべき基本をまとめてご紹介しました。

とにかく“シンプルで幅広い可能性を持つ”プログラミング言語であることが伝わったのではないでしょうか? 2020年現在人気最上位のプログラミング言語となっていることも納得ですね。

前述の通り無償で始められるため、まずは実際に簡単なコードを書いてPythonの世界へ一歩踏み出してみてください!

【参考資料】

PEP 0 — Index of Python Enhancement Proposals (PEPs)┃Python 陶山嶺『Python実践入門』技術評論社(2020) 森巧尚『Python 1年生』翔泳社(2017) PYPL PopularitY of Programming Language プログラミング言語人気ランキング2020、2位に「大躍進」したあの言語┃日経xTECHACTIVE 白井良「習得したい言語で1位のPython、人気沸騰の理由」┃日経xTECH かわさきしんじ「Python入門:Pythonってどんな言語なの?」┃@IT Python は遅い?┃Python数値計算入門 【Python】 Pythonで日常業務を自動化処理しよう┃WEBCAMP NAVI Google ColaboratoryならPythonですぐに学べる┃GAMMASOFT

宮田文机

 
×

メルマガ登録をしていただくと、記事やイベントなどの最新情報をお届けいたします。


データ活用 Data utilization テクノロジー technology 社会 society ビジネス business ライフ life 特集 Special feature

関連記事Related article

書評記事Book-review

データのじかん公式InstagramInstagram

データのじかん公式Instagram

30秒で理解!インフォグラフィックや動画で解説!フォローして『1日1記事』インプットしよう!

おすすめ記事Recommended articles

掲載特集

デジタル・DX・データにまつわる4コマ劇場『タイムくん』 デジタル・DX・データにまつわる4コマ劇場『タイムくん』 データのじかんをもっと詳しくデータのじかんフィーチャーズ データのじかんをもっと詳しく データのじかんフィーチャーズ 「47都道府県47色のDXの在り方」を訪ねる『Local DX Lab』 「47都道府県47色のDXの在り方」を訪ねる『Local DX Lab』 DXの1次情報をを世界から『World DX Journal』 DXの1次情報をを世界から 『World DX Journal』 データで越境するあなたへおすすめの『ブックレビュー』 データで越境するあなたへおすすめの 『ブックレビュー』 BIツールユーザーによる、BIツールユーザーのための、BIツールのトリセツ BIツールユーザーによる、BIツールユーザーのための、BIツールのトリセツ CIOの履歴書 by 一般社団法人CIOシェアリング協議会 CIOの履歴書 by 一般社団法人CIOシェアリング協議会 なぜ、日本企業のIT化が進まないのか――日本のSI構造から考える なぜ、日本企業のIT化が進まないのか――日本のSI構造から考える 日本ビジネスの血流である帳票のトレンドを徹底解説 日本ビジネスの血流である帳票のトレンドを徹底解説 データを武器にした課題解決家「柏木吉基」のあなたの組織がデータを活かせていないワケ データを武器にした課題解決家「柏木吉基」のあなたの組織がデータを活かせていないワケ BI(ビジネスインテリジェンス)のトリセツ BI(ビジネスインテリジェンス)のトリセツ 入社1年目に知っておきたい差が付くKPIマネジメント 入社1年目に知っておきたい 差が付くKPIマネジメント CIOLounge矢島氏が紐解くトップランナーたちのDXの“ホンネ” CIOLounge矢島氏が紐解く トップランナーたちのDXの“ホンネ” データのじかん Resources越境者のためのお役立ち資料集 データのじかん Resources 越境者のためのお役立ち資料集 AI実装の現在地点-トップITベンダーの捉え方 AI実装の現在地点-トップITベンダーの捉え方 データでビジネス、ライフを変える、面白くするDATA LOVERS データでビジネス、ライフを変える、 面白くするDATA LOVERS データマネジメント・ラジオ by データ横丁 データマネジメント・ラジオ by データ横丁 データのじかんNews データのじかんNews データ・情報は生もの!『DX Namamono information』 データ・情報は生もの! 『DX Namamono information』 ちょびっとラビット耳よりラピッドニュース ちょびっとラビット耳よりラピッドニュース AI事務員宮西さん(データ組織立ち上げ編) AI事務員宮西さん(データ組織立ち上げ編) 藤谷先生と一緒に学ぶ、DXリーダーのための危機管理入門 藤谷先生と一緒に学ぶ、DXリーダーのための危機管理入門 生情報取材班AI時代に逆行?ヒトが体感した「生情報」のみをお届け! 生情報取材班AI時代に逆行?ヒトが体感した「生情報」のみをお届け! データはともだち 〜怖くないよ!by UpdataTV Original データはともだち 〜怖くないよ!by UpdataTV Original データ飯店〜データに携わるモノたちの2.5thプレイス by UpdataTV〜 データ飯店〜データに携わるモノたちの2.5thプレイス by UpdataTV〜 インサイトーク〜データで世界を覗いてみたら〜by WingArc1st + IDEATECH インサイトーク〜データで世界を覗いてみたら〜by WingArc1st + IDEATECH
close close