イマ最も「カネ」になる言語。
来るべき人工知能時代の到来に備えるべく、現役システムエンジニアによるPython講座
先の記事でHelloWorldに成功したので、Pythonの動作環境が理解出来たかと思います。
しかし、Pythonが人工知能と相性が良いといわれる由縁は、その豊富なライブラリにあります。今回は、Python環境へのライブラリ導入について見ていきましょう。
※本講座では、Python独自の知識習得を主題にしていきます。従って、一般的なIT用語については、説明を割愛しますので、ご容赦ください。「ライブラリ」がそれです。要するに、ある処理を行うために必要な共通関数の集合体をimport文1行で使えるようにする魔法の呪文ですが、詳しくはGoogleセンセーまでどうぞ。
試しに、配列・行列を扱うライブラリ「numpy」を使ってみましょう。
とりあえず、下記のプログラムをテキストエディタで書き込んで、test.pyというファイル名で保存してください。
配列aを用意して、それを出力するだけの簡単なプログラムです。
import numpy as np a = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]]) print(a.size)
前回のHelloWorld.pyの要領で、実行してみましょう。
仮想環境 testをactivateしたら、test.pyのあるフォルダにcdして、python起動でしたね。
numpyなんて知らないよ!と怒られてしまいましたね。
そりゃそうです。まだ私たち、numpyのライブラリを導入してないですからね。
このように、ライブラリというは、一度仮想環境に導入してあげないと活用できないのです。
それなら早速numpyを導入してみましょう。
ライブラリの導入には2つの方法があります。
・Pythonで標準搭載されている、[pip install]
・Anacondaを経由する[conda install] です。
このサイトを参考に環境構築されたみなさまは、ANACONDAを導入済だと思いますので、
基本的にはどちらの方法を使っても問題ありません。
ANACONDAを導入せずに、単純にPython環境だけ整えている場合には、Pipだけしか使えません。 [conda install]というのは、ANACONDAが独自に用意した”強化版pip”という認識で問題ないかと思いますw
ただし、2つの仕様が若干異なるので、ライブラリによっては、どちらかでインストールしないとうまく動かないというケースも稀にあるみたいです。
とりあえずcondaでやってみて、なんか認識してくれないってときはpipでやり直す、という感じでよいかと思います。
今回はconda利用でnumpyを導入してみます。
ライブラリは仮想環境ごとに導入します。
まずは、test仮想環境が起動していることを確認してください。
(test)のカッコ内が仮想環境でしたよね。
「conda install numpy」
と打ち込みます。
※pipの場合は、「pip install numpy」となります。
例によって、Proceedの質問には、[y]を打ち込みます。
はい。終わりです。
ちゃんとインストールされたか確認してみましょう。
「conda list」
numpyが表示されれば成功です。
このリストが、仮想環境に導入されたライブラリの一覧です。
今後もよく確認する機会があると思いますので、conda listは覚えておいてください。
ちなみに、意図的にインストールしたのは、numpyだけですが、場合によっては、気を利かせて関連ライブラリを勝手に巻き取って導入してくれることもあります。
なので、インストール前後で身に覚えのないライブラリまで増えていても、あまり気にしなくて良いです。
このあたりの巻取り仕様がpipとcondaで異なるために、片方だけうまく動かないという事象につながることがあるようです。(なので、足りないライブラリもインストールしてやれば、解消するんですけどね。)
では、改めて、先ほどのtest.pyを実行してみてください。
おお!今度はエラーが出ません!!
「12」と出たのは、配列内のデータ数ですね。
配列aの中身を適当に変えていただければ、出力値が変わることも確認できます。
これで無事、ライブラリの導入が完了しました。
繰り返しになりますが、このライブラリの導入は、仮想環境ごとに1回導入する必要があります。
なので、一度導入した環境であれば、activateするだけで今後はnumpyを自由に使えます。
別の環境をCreateした場合には、そちらにもライブラリを導入しないと認識してくれません。
このライブラリは、他にも多種多様なものがあります。機械学習向けscikits-learnやディープラーニングに強いTensorFlowなど、人工知能の開発に欠かせないものも色々用意されています。Python=人工知能、と言われる裏には、こうしたライブラリの存在が大きいので、ここで紹介したライブラリの基本はしっかりと覚えておきましょう。
ライブラリは余分に導入していて悪さするわけはないので、あまり消す必要はないですが、
一応消す場合のコマンドは下記です。
Anacondaの場合:
「conda remove ライブラリ名」
pipの場合:
「pip uninstall ライブラリ名」
ここから先は、上級編です。とりあえずPythonを動かしたいだけという方は無理に理解しなくても問題ありませんので、読み飛ばしてください。
ライブラリの導入は仮想環境ごとに1回、という話をしましたが、
似たような環境を構築して別のプログラムを開発したい場合も、ライブラリをすべて導入しなおすのは、面倒ですよね?
そんなときのために、導入済のパッケージを一括コピーする便利な方法があるので、併せて紹介しておきます。
新しく、「test2」という環境をCreateしました。もちろん、numpyは未導入ですね。
では、続いて、再度「test」の方の仮想環境をActivateしてください。
こちらは、numpyが導入されてますよね。
ここで、「pip freeze > lib.txt」と打ち込みます。
すると、カレントディレクトリに、新しいテキストができています。
lib.txtを開いてみましょう。
certifi==2016.2.28 numpy==1.13.1 wincertstore==0.2
どうやら、導入済のライブラリ一覧のようです。numpyもありますね。
他の2つは、初期導入されているなにかと思われます。。
これ、何をしたかというと、pip freezeという、導入済ライブラリを確認するコマンドの結果を、lib.txtというファイル名で吐き出しただけです。
試しに、「pip freeze」だけ打ち込めば、コマンドプロンプト上に結果が出ます。
これをテキストに出力したんですね。
では、今度は「test2」の方をactivateにして、このファイルを読み込ませます。
「pip install -r lib.txt」
ちなみに、「-r」は、ファイル名から導入ライブラリ名を取得するよ!という引数なので、お忘れなく。
conda list で確認すると、numpyが導入されてますね!!!
このように、別の環境の引数と比較して、ないものだけインストールしてくれるので、いくつもライブラリを導入している場合の環境コピーには重宝しそうです♪
余談ですが、勘のいい方ならお気づきかと思いますが、ここで利用したコマンドは、
pip freeze , pip install -r なので、pip側の機能(python標準)となります。
Anacondaにはこれ相当のコマンドは特に用意されていないってことですね。
また、今回はnumpyをpip経由でインストールしたので、一番右の列にpipと表示されています。後になってpipとcondaどっちでインストールしたっけ??を確認する場合はここを見ればわかりますね。
今後もPythonを扱う上で、このコマンドってpipとcondaのどっちのものだ??
というのを意識しておくと、理解が深まりますよ。