vectormath: vector math utilities for Python
Project description
vectormath
Vector math utilities for Python built on NumPy
Why
The vectormath
package provides a fast, simple library of vector math
utilities by leveraging NumPy. This allows explicit
geometric constructs to be created (for example, Vector3
and Plane
)
without redefining the underlying array math.
Scope
The vectormath
package includes Vector3
/Vector2
and
Vector3Array
/Vector2Array
.
Goals
Speed: All low-level operations rely on NumPy arrays. These are densely packed, typed, and partially implemented in C. The
VectorArray
classes 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.
Alternatives
Connections
properties uses
vectormath
as the underlying framework for Vector properties.
Installation
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 .
Examples
This example gives a brief demonstration of some of the notable features of
Vector3
and Vector3Array
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[2])) # >> 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.2
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.