Numpy Maya Python

我们知道在maya mel 中有Matrix,但是在python中怎么实现呢?
默认的python中只能用list保存一组值,当数组来使用。不过由于list中的元素可以是任何对象,因此list中所保存的对象是指针。这样为了保存一个简单[1,2,3],就需要三个指针和三个整数对象。这样的数值运算无疑是对内存的一种浪费。此外python本身还提供了一个array模块,array对象和list的不同,它直接保存数值,类似于C中的一维数组,但是由于它不支持多维数组,也没有各种运算函数,因为不适合做数值的运算。
当然我们可以用强大的list代替。如:

1
2
3
4
5
6
7
rows=20
cols=10
matrix=[]
for i in xrange(0,rows):
    matrix.append([])
    for j in xrange(0.cols):
        matrix[i].append(0)

可是这样的效率、内存都是不小的负担,Numpy的出现弥补了这些缺陷,numpy提供俩种基本的对象:ndarray(存储单一数据的多维数组),ufunc(对数组进行处理的函数)

numpy的安装也是非常的方便,目前numpy的官方win没有64位的下载。可以在这里下载对应的python版本 http://www.lfd.uci.edu/~gohlke/pythonlibs/
安装后可以在python shell 直接 improt numpy。 但是如何在maya python使用呢?很简单,只需要将安装的路径的文件拷贝到maya路径里。
C:\Python26\Lib\site-packages 中的 numpy 复制到
C:\Program Files\Autodesk\Maya2012\Python\lib\site-packages
然后打开maya 执行

1
2
3
import numpy as nmp
a=nmp.array([1,2,3,4])
b=nmp.array([5,6,7,8])

你也可以进行数值的运算:

1
2
3
4
nmp.sin(3)
nmp.arctan(2)
nmp.sinc(7.352)
nmp.random.randint(-1,20,1)

注意:maya 2012 的python目前只支持2.6

Comments (0)

› No comments yet.

Leave a Reply

*

Allowed Tags - You may use these HTML tags and attributes in your comment.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>