This release is a pre-release and may not be stable for production use.
REQUIRES PYTHON3.1
QUICK TEST: $ python3.1 setup.py build dev –quicktest
DESCRIPTION: bytearray numerical extension
CHANGELOG:
20091209 - improved documentation 20091205 - moved source code to c++ 20091116 - package integrated
DEMO USAGE:
>>> from numbytes import *
>>> ## subclass numbytes
>>> class numbytes2(numbytes): pass
>>> ## create bytearray of 3x4 matrix of int64
>>> bytes_integer = numbytes2("i", range(12), shape0=3, shape1=4)
>>> bytes_integer.debug()
<class 'numbytes.numbytes2'> i refcnt=4 tsize=8 shape=<3 4> strides=<4 1> transposed=0
>>> print( bytes_integer )
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
>>> ## underlying bytearray object >>> print( bytes_integer.bytes ) bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00') >>> ## slice / transpose / reshape >>> print( bytes_integer[0, :] ) [[ 0 1 2 3]]
>>> print( bytes_integer[1:, 2:] ) [[ 6 7] [ 10 11]]
>>> print( bytes_integer.T[2:, 1:] ) [[ 6 10] [ 7 11]]
>>> print( bytes_integer.reshape(2, -1) ) [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11]]
>>> ## recast into double type
>>> bytes___float = bytes_integer.recast("f") / 3
>>> print( bytes___float )
[[ 0 0.333333 0.666667 1]
[ 1.33333 1.66667 2 2.33333]
[ 2.66667 3 3.33333 3.66667]]
>>> ## most arithmetic operations are inplace >>> ## use copy to avoid side-effects >>> print( bytes_integer.copy[1:, 2:] + bytes___float.copy[1:, 2:] ) [[ 8 9] [ 13 14]]
>>> print( bytes___float.copy[1:, 2:] + bytes_integer.copy[1:, 2:] ) [[ 8 9.33333] [ 13.3333 14.6667]]
>>> print( bytes_integer ) [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]]
>>> print( bytes_integer + bytes_integer[:, -1]) ## inplace [[ 3 4 5 6] [ 11 12 13 14] [ 19 20 21 22]]
>>> print( bytes_integer + bytes_integer.T[1:, 0]) ## inplace [[ 7 8 13 14] [ 24 25 26 27] [ 33 34 35 36]]
>>> print( bytes___float ) [[ 0 0.333333 0.666667 1] [ 1.33333 1.66667 2 2.33333] [ 2.66667 3 3.33333 3.66667]]
>>> print( bytes___float.sqrt() ) ## inplace [[ 0 0.57735 0.816497 1] [ 1.1547 1.29099 1.41421 1.52753] [ 1.63299 1.73205 1.82574 1.91485]]
>>> print( bytes___float ** 2 ) ## inplace [[ 0 0.333333 0.666667 1] [ 1.33333 1.66667 2 2.33333] [ 2.66667 3 3.33333 3.66667]]
>>> ## inplace exceptions are logical comparisons, >>> ## which return new char-typed arrays >>> print( bytes___float ) [[ 0 0.333333 0.666667 1] [ 1.33333 1.66667 2 2.33333] [ 2.66667 3 3.33333 3.66667]]
>>> print( bytes___float == bytes___float[:, 1] ) [[ 00 01 00 00] [ 00 01 00 00] [ 00 01 00 00]]
>>> print( bytes___float > 1.5 ) [[ 00 00 00 00] [ 01 01 01 01] [ 01 01 01 01]]
>>> ## >>> print( bytes_integer ) [[ 7 8 13 14] [ 24 25 26 27] [ 33 34 35 36]]
>>> for aa in bytes_integer.rows(): print( aa ) [[ 7 8 13 14]]
[[ 24 25 26 27]]
[[ 33 34 35 36]]
Metadata
Release files for numbytes 2009.12.09.py3k.cpp.static
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| numbytes-2009.12.09.py3k.cpp.static.tar.gz | 84.7 kB | Without provenance | Details |
Release files / numbytes-2009.12.09.py3k.cpp.static.tar.gz
| Download URL | numbytes-2009.12.09.py3k.cpp.static.tar.gz |
|---|---|
| Size | 84.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b171d5b00a81d6cd16611bdc17b0168067b676dd33bbb6ea34ec826262b27747
|
|
BLAKE2b-256 checksum How to use checksums |
9630f860e30b3b89be1da99a54161bce6215dbc88f65143f178207da2ced4b96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for numbytes 2009.12.09.py3k.cpp.static
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.