科学計算が得意なPythonのディスクリビューションのAnaconda Navigatorとは
- システム
エンジニア - Anaconda Navigatortについて教えてください。
- プロジェクト
マネージャー - Anaconda Navigatorのインストール方法や使用方法を紹介します。
Anaconda Navigatorとは?
Pyhtonは人工知能(AI)や機械学習などで主流のプログラミング言語となっていますが、ライブラリのインストールなど開発環境を整えるのに時間を要するのが難点といえます。
そんな中、科学計算に必要なライブラリなど一緒にインストールできるPyhtonのディスクリビューションがAnacondaです。ここではAnacondaの機能の一つのNavigatorについて紹介します。NavigatorにはJupyter notebookなどの機能があり、とても便利です。
Anacondaのインストール
WindowsやmacOS、Linuxでも利用可能なAnacondaは下記のAnaconda公式サイトからダウンロードできます。
ここではWindows 10を開発環境とします。
Anaconda Navigator
Anacondaのインストールが完了すれば、Navigatorを始め各種ツールやコマンドプロンプトが一緒にインストールされます。Windowsの「スタートメニュー」にAnaconda3が追加されているのを確認して下さい。
その中の一つにNavigatorがあります。NavigatorはAnacondaでインストールした各種ツールの起動やインストールを行うランチャーソフトウェアです。
Navigatorの各種ツール
Navigatorの各種ツールを見ていきましょう。Navigatorを起動させると、初回は初期化に少し時間がかかりますが、次のツールが起動可能です。
それは(1)Jupyterlab(2)notebook(3)qtconsole(4)spyderなどです。
JupyterLabとnotebook
Anaconda Navigatorの中で、まず、機能が似通っているJupyterLabとnotebookを取り上げます。
JupyterLabとnonebookはともにウェブブラウザが立ち上がり、それにアクセスしてPyhtonのコードを書いてすぐにその結果が分かる総合開発環境に近い機能を持っています。
JupyterLabとnotebookは、iPythonというPythonの対話式シェルがベースとなって開発されたもので、シェル機能ばかりでなく、画像の表示など様々なことが可能となっています。
JupyterLabの機能
JupyterLabはランチで起動させるとWebサーバが起動し、http://localhost:8888/labでブラウザか立ち上がり、JupyterLabが利用できます。
例えばGitHubからファイル等を取得してPyhtonを走らせてみます。以下のサイトからgit clone xxxxxでファイル等を取得して下さい。
cloneで取得した場合はその中のイメージを使って簡単な画像処理を行います。
JupyterLabで画像処理を試してみる
画像処理をするにはOpenCVをインストールする必要があります。「スタートメニュー」の「Anaconda3(64-bit)」のPowerShellを立ち上げてcondaでインストールします。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
(base) PS C:\Users\xxxx> conda install opencv
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: E:\anaconda3
added / updated specs:
- opencv
The following packages will be downloaded:
package | build
---------------------------|-----------------
libopencv-4.0.1 | hbb9e17c_0 28.6 MB
opencv-4.0.1 | py38h2a7c758_0 22 KB
openssl-1.1.1k | h2bbff1b_0 4.8 MB
py-opencv-4.0.1 | py38he44ac1e_0 1.5 MB
------------------------------------------------------------
Total: 34.9 MB
The following NEW packages will be INSTALLED:
libopencv pkgs/main/win-64::libopencv-4.0.1-hbb9e17c_0
opencv pkgs/main/win-64::opencv-4.0.1-py38h2a7c758_0
py-opencv pkgs/main/win-64::py-opencv-4.0.1-py38he44ac1e_0
The following packages will be UPDATED:
openssl 1.1.1j-h2bbff1b_0 --> 1.1.1k-h2bbff1b_0
Proceed ([y]/n)? y
Downloading and Extracting Packages
py-opencv-4.0.1 | 1.5 MB | ############################################################################ | 100%
libopencv-4.0.1 | 28.6 MB | ############################################################################ | 100%
openssl-1.1.1k | 4.8 MB | ############################################################################ | 100%
opencv-4.0.1 | 22 KB | ############################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
|
これでインストール完了です。
画像処理を実践
JupyterLabの左側上部のフォルダの形をしたところをクリックしてNew Folderを作成します。フォルダをimagesと名前を変えてそこにgit cloneで取得したimagesの中の画像をアップロードします。そして、次のソースコードを走らせます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import matplotlib, cv2
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# read an image
img = cv2.imread('images/noguchi02.jpg')
# show image format (basically a 3-d array of pixel color info, in BGR format)
print(img)
|
実行結果は次の通りです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
[[[ 72 99 143]
[ 76 103 147]
[ 78 106 147]
...
[159 186 207]
[160 187 213]
[157 187 212]]
[[ 74 101 145]
[ 77 104 148]
[ 77 105 146]
...
[160 187 208]
[158 186 210]
[153 183 208]]
[[ 76 103 147]
[ 77 104 148]
[ 76 104 145]
...
[157 181 203]
[160 188 212]
[158 186 210]]
...
[[ 39 78 130]
[ 39 78 130]
[ 40 79 131]
...
[193 210 223]
[195 212 225]
[197 214 227]]
[[ 32 71 123]
[ 32 71 123]
[ 32 71 123]
...
[198 215 228]
[200 217 230]
[200 217 230]]
[[ 39 78 130]
[ 39 78 130]
[ 39 78 130]
...
[199 216 229]
[200 217 230]
[201 218 231]]]
|
このようにAnaconda Navigatorを使うとライブラリのインストールなしでもプログラムが走ります。JupyterLabを終了したい場合は、左上の「ファイル」をクリックしてその一番下の「Shut Down」をクリックすればサーバが終了します。
notebookの機能
次にnotebookの機能を見ていきます。起動方法はJupyterLabと同じで、http://localhost:8888/treeでブラウザが立ち上がります。
よく見ると先ほどJupyterLabで作成したimagesフォルダがあり、画像もそのままです。それではこの画像を使ってまた、簡単な画像処理を行います。
notebookで画像処理
<markそれではnotebookの機能を見ていきます。notebookの左下にUntitled.ipyndとUntitled1.ipyndのnotebookが2つあることに気付くでしょう。ブラウザに先ほど使ったnotebookが例えば1時間前として時間経過で分かりますので、そちらのnotebookを使用します。
Untitled.ipyndをクリックするとhttp://localhost:8888/notebooks/Untitled.ipynbのブラウザが別に立ち上がります。先ほど書いたソースコードとその結果が保存されていることが分かります。次のソースコードを走らせます。
1
2
3
4
5
6
7
|
# convert image to RGB color for matplotlib
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# show image with matplotlib
plt.imshow(img)
|
これで先ほどJupyterでimportしたライブラリはもうimportする必要がなく、先ほどのコードの続きを書くだけでプログラムが走ります。この結果は画像表示なので、画像が表示されるか確認しましょう。
qtconsoleとspyder
qtconsole(Jupyter QT Console)とspyderは元々Qt(クロスプラットフォームに対応するUIフレームワーク)で実装されたJupyterやnotebookと同じく対話型のランチャーです。
qtconsoleの機能
qtconsoleをAnaconda Navigatorから起動します。すると、シェルが立ち上がります。対話型のシェルの為、1行ずつ入力していきます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
Jupyter QtConsole 4.7.7
Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.
import numpy as np
a=np.matrix([1, 2], [3, 4])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
----> 1 a=np.matrix([1, 2], [3, 4])
C:\anaconda3\lib\site-packages\numpy\matrixlib\defmatrix.py in __new__(subtype, data, dtype, copy)
143
144 # now convert data to an array
--> 145 arr = N.array(data, dtype=dtype, copy=copy)
146 ndim = arr.ndim
147 shape = arr.shape
TypeError: Field elements must be 2- or 3-tuples, got '3'
a=np.matrix([[1, 2], [3, 4]])
b=np.matrix([[5, 6], [7, 8]])
a*b
Out[5]:
matrix([[19, 22],
[43, 50]])
|
上記のようなエラーなどもすぐに分かる為、使い勝手はいいでしょう。
spyderの機能
spyderもqtconsoleと同様に対話型シェルとしても利用可能ですが、spyderはPythonのスクリプト作成ツールで、ステップ実行が可能なデバッガ機能が備わったランチャーです。
- システム
エンジニア - Anaconda Navigatorの使用方法がわかりました。
- プロジェクト
マネージャー - 今回紹介した画像処理方法などを参考に、実際にコードを書いてみましょう。
Anaconda Navigatorを積極的に活用しよう
上記以外にもAnaconda Navigatorには様々なランチャーなどがあります。
数理科学計算を主に扱う場合はAnacondaがお勧めです。その中でもAnaconda Navigatorは開発環境として使用できるなど、ユーザの目線でディストリビューションしているものの為、特に使い勝手がいいでしょう。
Anaconda Navigatorが気になっている方は是非この記事を読んで活用してみてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
Python新着案件New Job
-
マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都豊島区(池袋駅) -
マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都豊島区(池袋駅) -
商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円東京都都内(-駅) -
商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円東京都都内(-駅) -
商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円東京都都内(-駅) -
商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円東京都都内(-駅)