注目が続くプログラミング言語「Python」をご紹介します。どんなことができるのか、なぜ話題になっているのか。“初心者にやさしい言語”といわれる、その特徴も。プログラミングを学びたい人に共通して役立つ内容です。ぜひご活用ください。
- Pythonは初心者にやさしい言語?
- Pythonの自習で大事なことは?
- Pythonの自習でつまずいたら?
Pythonってどんな言語?
Pythonはちょっとした処理を容易に書けることが特徴です。
■電卓のように使える
たとえば、「3 + 5」と書いて実行すると「8」という答えが得られ、「4 * 5」と書いて実行すると「20」という答えが得られます。このように、電卓のような使い方でも直感的に記述できます。
■Webアプリや人工知能の開発も
人工知能の開発やデータの分析、Webアプリの開発など幅広い用途にも使用されています。このような高度な処理であっても、Pythonなら比較的容易に実現できます。
■インデントを使うため、読みやすい
コードをかくとき、多くのプログラミング言語では、プログラムの塊(ブロック)を表現するときに「中括弧(波括弧)」などの記号を使います。一方でPythonは「インデント(字下げ)」を使います。
インデントを使うと何が便利なの?
インデントでブロックを表すことで、他の言語での中括弧などが不要になり、シンプルに記述できます。
また、インデントを使うしかないため、開発者間でソースコードの書式が一致しやすくなります。視覚的にもブロックの範囲がわかりやすく、不具合を作り込みにくくなるメリットもあります。
Pythonで何ができる?
次はPythonで何ができるのか、3つの例をご紹介します。簡単なプログラムです。ぜひ一緒に動かしてみましょう。
■無料サービスを使って、手軽に実行
Pythonの開発に必要なソフトウェアをパソコンにインストールする方法もありますが、今回は手軽に実行するために、Googleが提供するColaboratory(以下文中、Colab)という環境を使います。
Colaboratoryとは
- Googleのアカウントがあれば、無料で使用できる
- Webブラウザだけで操作できる。そのため、パソコンだけでなくスマートフォンでもプログラムを作成、実行できる
●ログイン手順
Googleのアカウントにログインした状態で、以下のURLにアクセスしてください。
https://colab.research.google.com
表示された画面で「ノートブックを新規作成」をクリックすると、プログラムを入力できる画面が表示されます。次の図のような画面が表示されたら、準備完了です。
■1:簡単な計算
まずは、電卓のように「3 + 5」と半角で入力してみましょう。入力欄の左にある「三角ボタン」を押すと、実行結果がその枠の下に表示されます。
違う処理を実行したい場合は、画面上部にある「+コード」というボタンを押すと、入力欄が追加されます。ここに「4 * 5」と入力すると掛け算ができます。
■2:データからグラフを作る
グラフを作成する前に、このような疑問にお答えします。
「グラフならExcelで十分では?」
簡単な集計やグラフの作成であれば、Excelなどで十分だという人も多いでしょう。
しかし、プログラムを一度作っておけば、事前に決めた形式で、データを変えるだけでグラフを生成できます。毎月CSVデータを受け取ってグラフを作成しているような場合に便利です。
「どんなグラフがPythonで作れるの?」
Excelなどではできないような「緯度や経度といったデータを使って地図上に表現する」など高度なグラフを描くこともできます。
今回は簡単な例として、折れ線グラフを描いてみます。Pythonでグラフを描くには、「matplotlib」というライブラリを使います。
ライブラリとは
- 他のプログラムから使えるように用意されたプログラムを集めたもの
- さまざまな目的に合わせたものが提供されている
- ライブラリを使うと、複雑な処理でも効率よく実装できる
# ライブラリの読み込み
import matplotlib.pyplot as plt
# x座標
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
# y座標
y = [9, 10, 14, 19, 23, 26, 30, 31, 27, 22, 17, 12]
# 点(x, y)を黒い線で繋ぎながら描画
plt.plot(x, y, color="k")
# 折れ線グラフを表示
plt.show()
上のコードを見ると、コメント以外の記述はそれほど多くなく、ライブラリを使うことで、データさえ用意すれば数行でグラフを描画できることがわかります。
コメントとは
- 「#」で行を始めると、その部分はプログラムの動作に影響しない。これを「コメント」という
- 人が読んでもわかりやすいようにメモを書いておけること
このコードを実行すると、図のような折れ線グラフを生成できました。
■3:テキストデータを可視化する
もう少し高度な例として、「ワードクラウド」を作成してみましょう。
ワードクラウドとは
- 文章の中で登場する単語の出現頻度を集計し、よく使われる単語を大きく表現したもの
- 頻繁に登場する単語が視覚的に捉えやすくなり、文章の特徴やトピックを一目で把握できる
●英文のワードクラウド
今回はリンカーンによる「ゲティスバーグ演説」の文章を使ってみます。英文では単語が空白で区切られているため、文章を読み込んで、ライブラリを使うだけで容易に生成できます。
テキストファイルに保存し、Colabを開いた画面の左端にあるアイコンの中からフォルダのアイコンを押し、表示されたファイル一覧の上にあるアップロードボタンからファイルをアップロード。そのうえで、次のソースコードを入力します。
# ワードクラウドライブラリの読み込み
from wordcloud import WordCloud
# テキストファイルの読み込み
text = open("gettysburg.txt").read()
# ライブラリを使って画像を生成
wc = WordCloud(max_font_size=40).generate(text)
# 生成した画像を保存
wc.to_file("result.png")
これを実行すると、次のような画像が生成されました。
●日本語文のワードクラウド
日本語の場合は、単語が空白で区切られていないため、事前に単語ごとに区切る必要があります。これを「形態素解析」といい、これもライブラリが用意されています。
さらに、日本語を表示するには日本語フォントも必要です。これもフォントのファイルをアップロードしてから実行する必要があります。
https://fonts.google.com/specimen/M+PLUS+2?query=Coji+Morishita&vfonly=true
▲Google Fonts M PLUS 2:Designed by Coji Morishita
たとえば、『羅生門』の文章を使って、日本語フォントとしてM PLUS 2を使ってワードクラウドを作ると、次のような図ができました。
使ったソースコードは以下のようなもので、画像のサイズや背景色、フォントなども細かく指定しています。
!pip install janome
from janome.tokenizer import Tokenizer
from wordcloud import WordCloud
# テキストファイルの読み込み
sample = open("rashomon.txt", encoding="utf8").read()
# 形態素解析を実行
t = Tokenizer()
tokenized = t.tokenize(sample, wakati=False)
text = ""
for token in tokenized:
# 名詞だけを抽出
if token.part_of_speech.split(',')[0] in ["名詞"]:
if len(token.surface) > 1:
text += token.surface + " "
# ライブラリを使って画像を生成
wc = WordCloud(max_font_size=200, font_path='MPLUS2-ExtraBold.ttf', width=1280, height=670, background_color='white').generate(text)
wc.to_file("result.png")
▼ここまでの手順の詳細は、動画でご確認ください
Pythonを学ぶといい2つの理由
Pythonの特徴と何ができるのかをご紹介しました。ライブラリを読み込み、ちょっとしたソースコードを書くだけで見栄えのよい結果を得られることが伝わったでしょうか。
注目が続いているのは、このようなライブラリが整備されていることが挙げられます。
■1:特にデータ分析の領域で注目が続く
機械学習やデータ分析の領域では、処理が高速なC言語やC++、Javaといった言語がこれまで使われていました。しかし、高速なライブラリが用意されたことで、「Pythonの方が手軽に扱える」ということから、今後も注目が続くでしょう。
■2:初心者にやさしい言語
機械学習やデータ分析という言葉を聞くと難しく感じる人がいるかもしれません。
実際、高度な分析やプログラミングに取り組もうとすると、数学やアルゴリズムについての知識が求められる場面もあります。
しかし、Pythonは大学などでの教育にも使われるように、初心者がプログラミングを学ぶ最初のステップとしてもおすすめできる言語です。
次回以降では、学び方のコツについても紹介しますので、ぜひ挑戦してみてください。
- Pythonは初心者にやさしい言語?
- Pythonの自習で大事なことは?
- Pythonの自習でつまずいたら?
増井技術士事務所代表。技術士(情報工学部門)。情報処理技術者試験にも多数合格。ビジネス数学検定1級。「ビジネス」×「数学」×「IT」を組み合わせ、コンピュータを「正しく」「効率よく」使うためのスキルアップ支援や、各種ソフトウェアの開発、データ分析などを行う。著書に『Pythonではじめるアルゴリズム入門』『図解まるわかり プログラミングのしくみ』『「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック』(以上、翔泳社)。最新刊は『1週間でシステム開発の基礎が学べる本』(インプレス)。
※本記事に記載されている会社名、製品名はそれぞれ各社の商標および登録商標です。