Jan 112013
 

拡張モジュールNumpyの導入方法

NumPy
NumPy は Pythonプログラミング言語の拡張モジュールであり、大規模な多次元配列や行列のサポート、これらを操作するための大規模な高水準の数学関数ライブラリを提供する。初期のバージョンは Jum Hugunin によって作成されたが、NumPy はオープンソースであり多数の開発者が寄与している。
(Wikipediaより。http://ja.wikipedia.org/wiki/NumPy

[導入手順]

以下の手順でNumPyのIronPython版モジュールの導入する

注意:
RhinoPython下において、IronPython版NumPyはRhino5(32bit版、Win)でしか動作しない
64bitマシン使用者もRhino5(32bit版)をインストールすること
(Rhino5(32bit版)をインストールしてもRhino5(64bit版)が上書きされることはない)

1.Rhino5の32bit版をインストールする
[評価版]:http://www.rhino3d.com/download/rhino/5.0/evaluation

 
2.numpy/scipy for IronPythonをインストールする
2.1 IronPython 2.7をインストールする(RhinoPython構築済のPCにはすでに入っているはずなので飛ばしてよい)
http://ironpython.codeplex.com/

2.2 IronPython 2.7のパスを確認する
デフォルトだど、
32bitマシン:C:\Program File\IronPython 2.7
64bitマシン:C:\Program File (x86)\IronPython 2.7
のはず。

2.3 ironpkg-1.0.0.pyをダウンロードし、2.2の階層にファイルを移動させる
https://www.enthought.com/repo/.iron/ironpkg-1.0.0.py

2.4 コマンドプロンプトを起動
[スタート]>[すべてのプログラム]>[アクセサリ]>[コマンドプロンプト]
なお、起動時に[右クリック]>[管理者として実行]とすること

2.5 コマンドプロンプトから2.2の階層に移動し、2.3のファイルを下記のようにタイプし実行する
> ipy ironpkg-1.0.0.py –install
(※コマンドプロンプトの使用方法が分からない方は直接説明します)

2.6 2.5に続けて下記のようにタイプし実行する(scipyのインストール)
> ironpkg scipy

 
3.Rhinoの設定を変更する
3.1 Rhino5(32bit)を起動>PythonScriptエディタ>Options

3.2 Filesタブの[Module Search Paths]にnumpy/scipyのパッケージとDLLsのパスを登録する(下記画像参照)

3.3 Script Engineタブの[Frames Enabled]にチェックを入れる

3.4 以下のサンプルスクリプトを実行してみる

# -*- coding: utf-8 -*-

# 以下の2行がないとエラーが発生。mtrandのみ手動でインポート。理由は不明。
import clr
clr.AddReference("mtrand")

import rhinoscriptsyntax as rs
import numpy

#行列生成
x = numpy.matrix([[10, 20], [30, 40]])
print ">>x"
print x
y = numpy.matrix([[1, 2], [3, 4]])
print ">>y"
print y

#列ベクトル生成
x0 = numpy.matrix( [[0],[1]] ) 
print ">>x0"
print x0

#行ベクトル生成
y0 = numpy.matrix( [[0,1]] ) 
print ">>y0"
print y0

#数値の取り出し
print ">>x[0,0]"
print x[0,0] #0行0列目

#行列の和
print ">>sum"
print x+y

#行列の差
print ">>difference"
print x-y

#行列の積
print ">>product"
print x*y

#行列の商
print ">>quotient"
print x/y

#逆行列
print ">>inverse matrix"
print x.I

#転置行列
print ">>transposed matrix"
print x.T

#単位行列
i = numpy.matrix(numpy.identity(2))
print ">>identity matrix"
print i

#対角行列
d = numpy.diag([10,20])
print ">>diagonal matrix"
print d

 

参考:NumPyチュートリアル
http://www.scipy.org/Tentative_NumPy_Tutorial

参考:NumPyリファレンス(未完)
http://docs.scipy.org/doc/numpy/reference/

参考:python.rhino3d.com
http://python.rhino3d.com/entries/610-Numpy-and-Scipy-in-RhinoPython

参考:enthought.com
https://www.enthought.com/repo/.iron/

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>