AIで多く活用される言語として、近年Pythonが注目を集めています。
科学技術計算に用いやすいといわれているPythonには、AI・機械学習の開発に有効なライブラリが多数揃っており、現在も世界中の多くのエンジニアや研究者が開発を進めています。またAI系で使える言語として世界的に注目を浴びたこともあり、今も将来性の高い言語として多数のエンジニアが参入してきています。

今回はそんなPythonの入門編として、言語初心者向けに開発環境の設定や簡単な文法、サンプルスクリプトなどをご紹介していきます。
※なお本稿では特に記載がない限りPython3を想定して記載します。

Pythonとは


文法を極力単純化することで、コードの可読性を高め、読み書きしやすいようにデザインされた汎用の高水準言語(高級言語)です。
コアになる部分は必要最小限で構成されており、標準ライブラリやサードパーティ製ライブラリ、充実したツール群の中から自分の使用目的に合わせて機能を拡張できるのが最大の特徴です。

また、複数のプラットフォームやハードウェアに対応しているだけでなく、オブジェクト指向、命令形、手続き型、関数型などの多くの形式でプログラミングすることができます。
このような特徴から理工学や統計・解析の分野で積極的に活用されてきたことが、現在AI開発で多く利用されている理由ともいわれています。

Pythonの考え方は「The Zen of Python」(https://www.python.org/dev/peps/pep-0020/)というPythonプログラマーが持つべき心構えとして公式に定義されています。もしPythonを本格的に使っていこう!と思った方はぜひご一読ください。

Pythonの特徴

特徴1:シンプル

非常に可読性が高く、シンプルなコードで記述します。シンプルであるということは、覚えることが少なく初心者に優しいといえます。また書かなければならないコードが少なくて済むということでもあります。シンプルさを重視しているPythonは「同じ処理をする場合、誰が書いても基本的に同じ構文になりやすい」という特徴もあり、特にプログラミングの初学者に優しい言語といえるかもしれません。

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

AIでよく使用されている数値計算を効率的に行うための拡張モジュールNumpy(https://www.numpy.org/)を始めとして、無料で使用できる優れたライブラリが豊富に公開されています。
言語の使用者が多いためライブラリ数も非常に多く、自分が求めている機能を探し出して環境に組み込むだけで、簡単に複雑な処理が行えるのは魅力といえるでしょう。

特徴3:汎用性

非常に汎用性が高く、Webアプリケーション、データ解析・分析ツール、人工知能など多岐にわたる開発に活用されています。
たとえばWebアプリケーションではYouTubeやInstagramなどがPythonで開発されています。データ解析ツールとして有名なサービスの一つであるtableauなどのサービスでもPythonが採用されています。
また機械学習や深層学習専用のライブラリがあることから、人工知能の開発で脚光を浴びています。店頭で案内をするロボットとして知られているPepperはPythonで作られた人工知能を搭載しています。

最近ではAIで強い

前項の汎用性でも紹介したとおり、機械学習や深層学習(ディープラーニング)のライブラリやフレームワークが用意されています。これはもともとAIがここまで普及する以前からPythonで人工知能の研究開発が行われていたためです。

AIによく使用されているライブラリとしては、直感的な計算グラフ構築に強く、デバッグが比較的行いやすいChainer(https://chainer.org/)や、コードを書くのがとても簡単でプログラミング未経験でも扱いやすいKeras(https://keras.io/ja/)、Googleによって開発され、ディープラーニング系ライブラリでは一番メジャーともいわれるTensorFlow(https://www.tensorflow.org/)、FaceBookによって開発されたライブラリPyTorch(https://pytorch.org/)などが有名です。

特にGoogleやFacebookのような大型のネットワークサービスを有する企業がフレームワークを開発しているため、他の言語よりもコミュニティが充実し、結果としてAI開発に必要なライブラリの開発が進み、現在ではAI開発に非常に強いといわれています。

Pythonの環境構築

Pythonの学習方法は「習うより慣れろ」といわれています。コードのシンプルさと可読性の高さから、まずはコードに触れてみたほうがテキストで学ぶよりも吸収が早いというわけです。
ということで、まずは環境を構築してみましょう。

必要なファイルの概要

ローカル環境を作るか、オンライン環境で試すかで、必要なファイルは異なります。
オンライン環境の場合、Googleが提供している「Google Colaboratory」を使うことで、すぐにPythonの学習を始められます。

Google Colaboratory(https://colab.research.google.com/

Google Colaboratoryを使用する場合、特にインストールの作業は必要ありません。「https://colab.research.google.com/」にアクセスしてGoogleアカウントでサインインするだけで、PythonやNumpyなどデータ分析や機械学習で必要なほぼ全ての環境を使用することができます。動作はOSに依存せず、ブラウザがあればどの作業環境からでも同じ開発環境を利用することができます。

逆にローカル環境を作る場合は、Pythonの公式サイトからパッケージをダウンロードし、インストールしていくことになります。MacとWindowsで手順が変わりますので、順番に見ていきましょう。

Macの場合

Macには実はApacheとPythonが標準でインストールされています。しかし、最新のものとは限りませんし、ライブラリ追加やパーミッションの変更などでシステムに問題を起こす可能性もあります。

そこで、Pythonを使う場合、新しく環境をインストールすることをおすすめします。
作業を簡単にまとめると

  1. Homebrewをインストール
  2. Homebrewを使用してpyenvをインストール
  3. pyenvを使ってPythonをインストールする

という作業になります。順番に見ていきましょう。

1. Homebrewをインストール
作業はアプリケーションの中にある「ターミナル.app」を使用して進めます。
まずは作業1のため、ターミナル.appでHomebrewがインストールされているかを確認します。

brew -v

ここでもし

brew: command not found

と表示された場合、ホームサイト(https://brew.sh/index_ja)で指示されているインストールスクリプトをターミナルに貼り付けて実行してください。これでHomebrewがインストールされた状態になります。

ここで

Homebrew 2.1.4

のようにバージョンが表示されるようになれば成功です。

2. Homebrewを使用してpyenvをインストール
次にpyenvをインストールします。これはPythonのバージョンを切り替えるのに使用します。

brew install pyenv

コマンドを実行しインストールが終わったあと

pyenv -v

と実行して

pyenv 1.1.0

などのバージョンが表示されれば成功です。

インストールが完了したら、以下の4行を実行します。これはパスを通すために必要なコマンドで、実行することでpyenvを簡単に操作可能にするイメージです。

echo ‘export PYENV_ROOT=””$HOME/.pyenv””‘ >> ~/.bash_profile
echo ‘export PATH=””$PYENV_ROOT/bin:$PATH””‘ >> ~/.bash_profile
echo ‘eval “”$(pyenv init -)””‘ >> ~/.bash_profile
source ~/.bash_profile

3. pyenvを使ってPythonをインストールする
最後にPythonをインストールします。

pyenv install –list

を実行し、最新のPythonを確認します。次に

pyenv install 3.x.x(最新のバージョンを入力)

のコマンドを実行します。
インストールが完了後、

pyenv versions

を実行し、指定したバージョンがインストールされていることを確認します。
最後に

pyenv global 3.x.x

を実行し、pyenvが使用するPythonを新しくインストールしたものに指定します。

Windowsの場合

WindowsにはPythonが入っていないため、全て手動で環境を用意する必要があります。
Anaconda(https://www.anaconda.com/)または、Pythonの公式が配布している”Vanilla” Python(https://www.python.org/downloads/windows/)のどちらかを選択することになります。

Anaconda(https://www.anaconda.com/

AnacondaはPythonの環境構築からライブラリのインストールまで一気に済ませ、機械学習の環境を整えてくれるため、AIやディープラーニングを学びたい人におすすめです。
2019年7月時点では、Webサイト右上の「Download」ボタンより「Python 3.7 version」を選択してダウンロード可能です。

“Vanilla” Python(https://www.python.org/downloads/windows/

逆にウェブアプリケーションを作ったり、素の状態のPythonに触れてみたい人は”Vanilla”Pythonが良いでしょう。2019年7月現在では、ダウンロードページからWindows用として、「Windows x86-64 embeddable zip file」がダウンロードできます。

どちらの場合も、インストーラーをダウンロードしたあとは、画面の指示通りにインストール作業を行います。
基本的に指示通りに進めておけば問題ありません。

Pythonの基本文法

Pythonを書いていくにあたって、基本的な文法の紹介をしておきたいと思います。ここでは「型」と、if,whileなどの「構文」の2つを簡単に解説します。

Pythonでよく使う基本的な型をご紹介します。

Int
整数(int)はそのまま正の整数を記述します。

num = 1234

Float
浮動小数点数(float)は小数点をそのまま記述します。

num = 1.234

String
文字列(str)を表示するには文字列をシングルクォーテーションまたはダブルクォーテーションでくくります。

str = “Hello world”

その他、虚数(complex)は最後にJ、長整数(long)は最後にLをつけます。

構文

構文として条件分岐やループなどのよく使うものをご紹介します。

条件分岐
条件分岐のif構文で使えるコマンドはif、elif、elseです。

#標準入力で入力された数値を変数 point に入れる
point=int(input(“point”))

# 条件分岐(入力されたものが75以上なら High! 45以上75未満ならMiddle それ以外はLowと表示)
if point >= 75:
 print(“High!”)
elif point >= 45:
 print(“Middle”)
else:
 print(“Low”)

ループ
Whileの条件が真(True)である限り繰り返すWhileループは以下のように記述します。

# x の初期値
x=1

# ループ開始(x が 5以下の場合続く)
while x <= 5:  # Point = x を出力する
 print (“Point = %d” % x)
 # x を + 1 する
 x += 1;

# 最後に Finish! を出力
print(“finish!”)

# 結果
Point = 1
Point = 2
Point = 3
Point = 4
Point = 5
finish!

【Pythonサンプルその1】Pythonで書いてみよう!

はじめての言語で扱う最初のコードといえば「Hello World」。Pythonでもまずは「Hello World」から初めましょう。

print(‘Hello, world!’)

printを使い、文字列「Hello, world!」を表示するコードです。たった1行ですが、れっきとしたPythonのコードです。まずはこの1行をテキストファイルに記述し、hello.pyと名前をつけてデスクトップに保存します。
保存したら早速実行してみましょう。

Macの場合

ターミナル.appを起動し、「cd ~/Desktop/」を実行したあと

python hello.py

と入力して実行します。
画面に

Hello,World

と表示されれば動作しています。

Windowsの場合

コマンドプロンプトを起動し

C:\Users\xxxx> python hello.py

のコマンドを実行します。画面に

Hello,World

と表示されれば動作しています。

【Pythonサンプルその2】もう少しPythonで書いてみよう!

次は、Pythonのコードでファイルの入出力をしてみましょう。
Pythonでのファイルの読み書き(入出力)は読み込み・書き込みいずれの場合でもopen()でファイルを開きます。open()したファイルオブジェクトは、必ずclose()メソッドでクローズする必要がありますが、withブロックを使うとブロックの終了時に自動的にクローズされます。

今回は以下のソースコードを元に解説してきます。

with open(‘./sample.txt’, ‘w’) as f:
 f.write(“Hello, world!”)

with open(‘./sample.txt’, ‘r’) as f:
 hello = f.read()
 print(hello)

上から順番に解説していきます。

with open(‘./sample.txt’, ‘w’) as f:

これでsample.txtが開かれました。
ここに「Hello,World!」を書き込みます。
書き込みにはwrite()メソッドを使用します。

f.write(“Hello, world!”)

これでファイルには「Hello, world!」と入力されました。

次に、ファイルを開いてテキストを読み出します。
ファイルのオープンは書き込みに使用したものと同じです。

with open(‘./sample.txt’, ‘w’) as f:

続いて、read()メソッドでファイル全体を文字列として読み出します。

hello = f.read()

最後にprint構文を使い、引数helloに読み出した文字列を表示します。

print(hello)

これで画面には、テキストファイルから読みだした文字列「Hello,World!」が表示されているはずです。

【Pythonサンプルその3】もっとPythonで書いてみよう!

“Pythonでは関数やクラスなどをまとめて書いたファイルをモジュールといいます。importを使用することで、このモジュールを呼び出すことができます。ここでは、このimportを使ってsysを呼び出し、入力された値を2倍にするコードを書いてみましょう。

まずサンプルを見てみましょう。

import sys

if len(sys.argv) < 2:  print(“引数が足りていません。”)
 sys.exit(1)

num = sys.argv[1]

if not num.isdigit():
 print(“整数値を入力してください。”)
 sys.exit(1)

print(int(num) * 2)

上から順番に見ていきましょう。
1行目でsysを呼びます。このモジュールはインタプリタで使用・管理している変数や、インタプリタの動作に深く関連する関数を定義しています。

次のifでPythonスクリプトに渡されたコマンドライン引数が2より小さければ引数が不足していると表示させます。引数numをsys.argv[1]に設定し、整数が値出ない場合も警告を表示します。どちらにも該当しなかった場合、入力された数字を2倍にし、printで表示します。

このソースコードを実行する際は実行時に引数が必要になります。今まで実行時に

python hello.py

このようにしていましたが、これに引数を足すため、以下のようなコマンドになります。

python hello.py 1234

# 結果

2468

補足ですが、importはさまざまなモジュールを呼び出すために頻繁に使用するコマンドです。Pythonは多くのモジュールを組み合わせ、自分の用途に合わせたライブラリを構成することで、自分で処理を書く必要がなく、効率よくコードを書くことができます。
このコマンドを使いこなすことで、Pythonでのプログラミングは飛躍的に容易になります。複数のモジュールを読み込む場合、コマンドは1行に書かず、以下のように2行に分けることになります。

import math
import sys

ただし、fromを使ってオブジェクトを読み出す場合は、1行で書くこともできますので覚えておくと良いでしょう。

from math import pi, radians

本格的に勉強したい方のために

ここまでサンプルスクリプトとあわせてPythonの基礎的な部分をご紹介してきました。
ここから先、もちろん独学でも多数の参考サイトがあり、サンプルスクリプトを動かすだけでも充分に学習できるPythonですが、もっと本格的に学びたい人にはスクールをおすすめします。

スクールにはオンラインとオフラインがある

オフラインで通学するスクールと、オンラインで自習するスクールがあります。また、オンラインでマンツーマンや集団講義を受けることができるスクールもあります。もっとも時間に自由が効くのが「オンラインで自習」するスクールですが、より早く短時間で習得したい場合は、マンツーマンの短期集中型の講座が良いでしょう。特に初心者からプロフェッショナルを目指す人には、行き詰まった時、自習の壁はどうしても大きなものです。

おすすめのスクールは?

TechAcademy(https://techacademy.jp/
オンラインのマンツーマンに加え、細かなメンター制度があり、短期間でPythonを使ったさまざまなモデル構築とデータ分析を行えるようになるプログラムです。統計学の基礎やPythonで実際に分析する方法まで習得できます。

CodeCamp(https://codecamp.jp/
プログラミング未経験者でも、現役エンジニアからマンツーマンで受講することができます。データサイエンスの中でもデータ収集に注目したカリキュラムになっており、2カ月のコースです。

DotPro(https://dotpro.net/
180日間のコースで対面式の集中授業が中心です。10人の集団学習になり、周1回の特訓を24回受講することになります。修了後は永続的に就職や独立のサポートを受けられるので、エンジニアとしての就業を目指す人におすすめです。”

シンプルで楽しいPythonでプログラミングを初めてみませんか?

Pythonは汎用性が高く、多くのコミュニティを持つ言語です。AIの分野では今後もまだまだ大きな成長が見込める言語でありながら、シンプルで習得しやすく、初心者にもプログラミングの楽しみが味わえるのが醍醐味です。
機械学習やアプリケーション開発と肩に力を入れず、まずは気楽に楽しく、簡単なものから動かしてPythonを楽しんでみてください。書き込むほどに、自分だけの世界が広がる楽しみが味わえるはずです。

関連記事

Ruby入門 – 初心者に向けて開発環境やサンプルの解説をします

【サンプル有】Python入門 – 初心者向けに環境設定・文法解説・サンプルまで徹底解説します

【初心者向け】プログラミング言語の選び方 – 様々な種類の言語を一覧で紹介します

AI(人工知能)エンジニアになるには?必要なスキルや知識、年収は?