Joan Venge
Joan Venge

Reputation: 331290

Is there a Vector3 type in Python?

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

Answers (3)

Jake Morfe
Jake Morfe

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

Autoplectic
Autoplectic

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

simon
simon

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

Related Questions