tags:

views:

228

answers:

3

I quickly checked numPy but it looks like it's using arrays as vectors? I am looking for a proper Vector3 type that I can instance and work on.

+4  A: 

Found this, maybe it can do what you want.

nosklo
Thanks looks good.
Joan Venge
+2  A: 

I don't believe there is anything standard (but I could be wrong, I don't keep up with python that closely).

It's very easy to implement though, and you may want to build on top of the numpy array as a container for it anyway, which gives you lots of good (and efficient) bits and pieces.

simon
Thanks, but would I be able to write instance methods for it? i.e. the array type lets me do this: vector.Unitize()
Joan Venge
What's so special about instance methods? Or custom classes. This is Python, after all, not Java or C#. Besides, I believe Simon is recommending you extend the numpy array, which would give you instance methods, no?
Jarret Hardie
+3  A: 

ScientificPython has a Vector class. for example:

In [1]: from Scientific.Geometry import Vector
In [2]: v1 = Vector(1, 2, 3)
In [3]: v2 = Vector(0, 8, 2)               
In [4]: v1.cross(v2)
Out[4]: Vector(-20.000000,-2.000000,8.000000)
In [5]: v1.normal()
Out[5]: Vector(0.267261,0.534522,0.801784)
In [6]: v2.cross(v1)
Out[6]: Vector(20.000000,2.000000,-8.000000)
In [7]: v1*v2 # dot product
Out[7]: 22.0
Autoplectic