vectormath: vector math utilities for Python
Vector math utilities for Python built on NumPy
vectormath package provides a fast, simple library of vector math
utilities by leveraging NumPy. This allows explicit
geometric constructs to be created (for example,
without redefining the underlying array math.
vectormath package includes
- Speed: All low-level operations rely on NumPy arrays. These are densely packed,
typed, and partially implemented in C. The
VectorArrayclasses in particular take advantage of this speed by performing vector operations on all Vectors at once, rather than in a loop.
- Simplicty: High-level operations are explicit and straight-forward. This library should be usable by Programmers, Mathematicians, and Geologists.
- properties uses
vectormathas the underlying framework for Vector properties.
To install the repository, ensure that you have pip installed and run:
pip install vectormath
For the development version:
git clone https://github.com/seequent/vectormath.git cd vectormath pip install -e .
This example gives a brief demonstration of some of the notable features of
import numpy as np import vectormath as vmath # Single Vectors v = vmath.Vector3(5, 0, 0) v.normalize() print(v) # >> [1, 0, 0] print(v.x) # >> 1.0 # VectorArrays are much faster than a for loop over Vectors v_array = vmath.Vector3Array([[4, 0, 0], [0, 2, 0], [0, 0, 3]]) print(v_array.x) # >> [4, 0, 0] print(v_array.length) # >> [4, 2, 3] print(v_array.normalize()) # >> [[1, 0, 0], [0, 1, 0], [0, 0, 1]] # Vectors can be accessed individually or in slices print(type(v_array[1:])) # >> vectormath.Vector3Array print(type(v_array)) # >> vectormath.Vector3 # All these classes are just numpy arrays print(isinstance(v, np.ndarray)) # >> True print(type(v_array[1:, 1:])) # >> numpy.ndarray
Current version: v0.2.0