Skip to main content
Simple, general, pure Python vectors

hypervector.py defines arbitrary-dimentional vector types for all your vectoring needs. The vectors are immutable and come with many useful and well-tested vector operations and features.

hypervector is in the public domain.

A few explanatory examples

Hello world, NOW IN 3D!

>>> from hypervector import Vector3
>>> (Vector3(1, 2, 1) + Vector3(3, 0, 2)).zxy
Vector3(3, 4, 2)

Higher dimensions

>>> from hypervector import Vector, Vector2, Vector3
>>> Vector2 is Vector[2] and Vector3 is Vector[3]
True
>>> Vector[4](1, 2, 3, 4)
Vector[4](1, 2, 3, 4)
>>> Vector[5](1, 2, 3, 4)
Vector[5](1, 2, 3, 4, 0)
>>> Vector[10].zero
Vector[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

King of infinite (vector) space

>>> vec = Vector(2, 4)  # Dimensionless vectors are "infinite"
>>> (vec[0], vec[1], vec[2], vec[1114111])
(2, 4, 0, 0)

Cross-eyed

>>> vec_1, vec_2 = Vector(1, 2, 3), Vector(3, 2, 1)
>>> Vector.cross(vec_1, vec_2)
Vector(-4.0, 8.0, -4.0)
>>> [Vector.dot(_, vec) for vec in (vec_1, vec_2)]
[0.0, 0.0]
>>> vec_3 = Vector(-1, 8, 3, 2)
>>> Vector.cross(vec_1, vec_2, vec_3)
Vector(8.0, -16.0, 8.0, 56.0)
>>> [Vector.dot(_, vec) for vec in (vec_1, vec_2, vec_3)]
[0.0, 0.0, 0.0]

Testing

hypervector uses py.test and hypothesis, with tox as a test runner.

How fast is hypervector?

Dunno. Probably pretty slow. If you need speed, use numpy.

Alternatives

There are many other libraries with similar features to hypervector. Some notable examples I have used:
  • numpy

  • pyeuclid — Has unrelated Vector2 and Vector3 classes. Also has two separate packages for Python 2 and Python 3.

Metadata

Release files for hypervector 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hypervector 0.1.0
File Size Uploaded
hypervector-0.1.0.tar.gz 9.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hypervector 0.1.0
File Interpreter ABI Platform
hypervector-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.2 kB

Release files / hypervector-0.1.0.tar.gz

Download URL hypervector-0.1.0.tar.gz
Size 9.5 kB
Tags Source
SHA-256 checksum
How to use checksums
bfb40121af46731947fa63ee2b53f0cafdac7a6d37a5a147e0d2f64547ed03bd
BLAKE2b-256 checksum
How to use checksums
d11ccf5e6167a9019bbf8871f9a8d732163072b011c094287eb9eb85e3d4bba3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

Release files / hypervector-0.1.0-py3-none-any.whl

Download URL hypervector-0.1.0-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a4fd128929635e88290aece410bcfd302f31f72222a29bab89909150ebad1df4
BLAKE2b-256 checksum
How to use checksums
afad6ac18cbef6a11de1017aa55383a44f41c194df32529dfa5f6685de3b8258
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page