Reputation: 331290
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.
Upvotes: 7
Views: 18302
Reputation: 29
I know the above answer was already accepted. However, if someone already has numpy installed, you can use the array class like so. It overloads the arithmetic operators allowing calculations across all values of the array sort of like a Vector.
from numpy import array
vector3a = array([1,2,3])
vector3b = array([3,2,1])
print(vector3a + vector3b)
>>> array([4, 4, 4])
Upvotes: -1
Reputation: 7666
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
Upvotes: 6
Reputation: 7022
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.
Upvotes: 2