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
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:
Links
Get hypervector from PyPI: pip install hypervector
Report bugs and offer suggestions at the github issues page.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hypervector-0.1.0.tar.gz
(9.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hypervector-0.1.0.tar.gz.
File metadata
- Download URL: hypervector-0.1.0.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfb40121af46731947fa63ee2b53f0cafdac7a6d37a5a147e0d2f64547ed03bd
|
|
| MD5 |
f38c01c00879e43cb6db157650f71917
|
|
| BLAKE2b-256 |
d11ccf5e6167a9019bbf8871f9a8d732163072b011c094287eb9eb85e3d4bba3
|
File details
Details for the file hypervector-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hypervector-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4fd128929635e88290aece410bcfd302f31f72222a29bab89909150ebad1df4
|
|
| MD5 |
b9bb1b2824f3e09a1b271bf0c53dc513
|
|
| BLAKE2b-256 |
afad6ac18cbef6a11de1017aa55383a44f41c194df32529dfa5f6685de3b8258
|