bytearray numerical extension
Project description
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]]
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.
Source Distribution
Close
Hashes for numbytes-2009.12.09.py3k.cpp.static.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b171d5b00a81d6cd16611bdc17b0168067b676dd33bbb6ea34ec826262b27747 |
|
MD5 | b5b4323c8b77167442bfbf50d82c33bb |
|
BLAKE2b-256 | 9630f860e30b3b89be1da99a54161bce6215dbc88f65143f178207da2ced4b96 |