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.