{ "info": { "author": "kai zhu", "author_email": "kaizhu256@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License (GPL)", "Natural Language :: English", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: C", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.1", "Topic :: Multimedia", "Topic :: Multimedia :: Graphics", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Scientific/Engineering :: Visualization", "Topic :: Software Development", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "numerical bytearray - extends bytearray into numpy-like, 2d array\n\n REQUIRES PYTHON3.1\n\n QUICK TEST: $ python3.1 setup.py build dev --quicktest\n\n DESCRIPTION: numerical bytearray - extends bytearray into numpy-like, 2d array\n\nRECENT CHANGELOG:\n20091224 - modularized package - fix install issues - added sdist check\n20091209 - improved documentation\n20091205 - moved source code to c++\n20091116 - package integrated\n\n DEMO USAGE:\n\n>>> from numbytes import *\n>>> ## subclass numbytes\n>>> class numbytes2(numbytes): pass\n\n>>> ## create bytearray containing 3x4 array of longlong\n>>> integers = numbytes2('i', range(12), shape0 = 3, shape1 = 4)\n>>> print( integers.debug() )\n i refcnt=4 tcode=i tsize=8 offset=0 shape=<3 4> stride=<4 1> transposed=0\n[[ 0 1 2 3]\n[ 4 5 6 7]\n[ 8 9 10 11]]\n\n>>> ## modify underlying bytearray\n>>> integers.bytes()[0] = 0xff; integers.bytes()[1] = 0xff\n>>> print( integers.bytes() )\nbytearray(b'\\xff\\xff\\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')\n>>> print( integers.debug() )\n i refcnt=4 tcode=i tsize=8 offset=0 shape=<3 4> stride=<4 1> transposed=0\n[[ 65535 1 2 3]\n[ 4 5 6 7]\n[ 8 9 10 11]]\n\n>>> ## bytearray as sequence\n>>> print( 2 in integers )\nTrue\n>>> print( integers.count(2) )\n1\n>>> print( integers.index(2) )\n2\n>>> for aa in integers.rows(): print( aa )\n[[ 65535 1 2 3]]\n[[ 4 5 6 7]]\n[[ 8 9 10 11]]\n>>> ## slice\n>>> print( integers[1:, 2:].debug() )\n i refcnt=3 tcode=i tsize=8 offset=6 shape=<2 2> stride=<4 1> transposed=0\n[[ 6 7]\n[ 10 11]]\n>>> ## transpose\n>>> print( integers.T()[2:, 1:].debug() )\n i refcnt=3 tcode=i tsize=8 offset=6 shape=<2 2> stride=<1 4> transposed=1\n[[ 6 10]\n[ 7 11]]\n>>> ## reshape\n>>> print( integers.reshape(2, -1).debug() )\n i refcnt=3 tcode=i tsize=8 offset=0 shape=<2 6> stride=<6 1> transposed=0\n[[ 65535 1 2 3 4 5]\n[ 6 7 8 9 10 11]]\n>>> ## setslice\n>>> integers.T()[2:, 1:] = range(4); print( integers )\n[[ 65535 1 2 3]\n[ 4 5 0 2]\n[ 8 9 1 3]]\n\n>>> ## almost all arithmetic operations are inplace - use copy to avoid side-effects\n>>> ## recast to double\n>>> floats = integers.recast('f') / 3; print( floats )\n[[ 21845 0.333333 0.666667 1]\n[ 1.33333 1.66667 0 0.666667]\n[ 2.66667 3 0.333333 1]]\n>>> ## copy\n>>> print( floats.copy() + integers[0, :] )\n[[ 87380 1.33333 2.66667 4]\n[ 65536.3 2.66667 2 3.66667]\n[ 65537.7 4 2.33333 4]]\n>>> ## inplace\n>>> print( floats + integers[:, 0] )\n[[ 87380 65535.3 65535.7 65536]\n[ 5.33333 5.66667 4 4.66667]\n[ 10.6667 11 8.33333 9]]\n>>> ## inplace\n>>> print( floats - integers[:, 0] )\n[[ 21845 0.333333 0.666667 1]\n[ 1.33333 1.66667 0 0.666667]\n[ 2.66667 3 0.333333 1]]\n>>> ## inplace\n>>> print( floats ** 2 )\n[[ 4.77204e+08 0.111111 0.444444 1]\n[ 1.77778 2.77778 0 0.444444]\n[ 7.11111 9 0.111111 1]]\n>>> ## inplace\n>>> print( floats.sqrt() )\n[[ 21845 0.333333 0.666667 1]\n[ 1.33333 1.66667 0 0.666667]\n[ 2.66667 3 0.333333 1]]\n\n>>> ## the only inplace exceptions are logical comparisons, which return new char arrays\n>>> print( floats )\n[[ 21845 0.333333 0.666667 1]\n[ 1.33333 1.66667 0 0.666667]\n[ 2.66667 3 0.333333 1]]\n>>> ## copy as char\n>>> print( floats == floats[:, 1] )\n[[ 00 01 00 00]\n[ 00 01 00 00]\n[ 00 01 00 00]]\n>>> ## copy as char\n>>> print( floats > 1.5 )\n[[ 01 00 00 00]\n[ 01 01 00 00]\n[ 01 01 00 00]]", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/numbytes", "keywords": null, "license": "gpl", "maintainer": null, "maintainer_email": null, "name": "numbytes", "package_url": "https://pypi.org/project/numbytes/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/numbytes/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/numbytes" }, "release_url": "https://pypi.org/project/numbytes/2009.12.24.py3k.cpp/", "requires_dist": null, "requires_python": null, "summary": "numerical bytearray - extends bytearray into numpy-like, 2d array", "version": "2009.12.24.py3k.cpp" }, "last_serial": 795602, "releases": { "2009.11.16.py3k.cpp": [ { "comment_text": "", "digests": { "md5": "4c48875251879d6af8cdfaba0f42fdc8", "sha256": "148f8470902aec627be0ab17bf7c30d9f7e04ce93482fbe53416fce49b3042ea" }, "downloads": -1, "filename": "numbytes-2009.11.16.py3k.cpp.tar.gz", "has_sig": false, "md5_digest": "4c48875251879d6af8cdfaba0f42fdc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83079, "upload_time": "2009-11-19T03:54:02", "url": "https://files.pythonhosted.org/packages/e6/3f/cd554c701548d71337a405f683abab2413d3260700cdb809813f885840eb/numbytes-2009.11.16.py3k.cpp.tar.gz" } ], "2009.11.19.py3k.cpp": [ { "comment_text": "", "digests": { "md5": "3ee7ecaa496a2864dfdc63b5c34df1d3", "sha256": "74804e7ad6dd5dfd4bab8e6dff87ed16e194e9cfd6c63e2c2a77433fb134bd8f" }, "downloads": -1, "filename": "numbytes-2009.11.19.py3k.cpp.tar.gz", "has_sig": false, "md5_digest": "3ee7ecaa496a2864dfdc63b5c34df1d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85218, "upload_time": "2009-11-23T15:43:41", "url": "https://files.pythonhosted.org/packages/ea/91/8aa1e95cd616661fb2a7644daa7d26ec89bc7e3743717f12e596addb66fb/numbytes-2009.11.19.py3k.cpp.tar.gz" } ], "2009.12.03.py3k.cpp.static": [ { "comment_text": "", "digests": { "md5": "734d997e8e03a82dd163bd43c91a63c6", "sha256": "7a11e49334704457af4e11e3c140f64a22e6314f902b24a77cca2ef3fac6dc13" }, "downloads": -1, "filename": "numbytes-2009.12.03.py3k.cpp.static.tar.gz", "has_sig": false, "md5_digest": "734d997e8e03a82dd163bd43c91a63c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76643, "upload_time": "2009-12-06T23:46:24", "url": "https://files.pythonhosted.org/packages/82/65/cd3a2209b6099360b19ec05a480fa2260561bd71966317bcd68833ae8f8b/numbytes-2009.12.03.py3k.cpp.static.tar.gz" } ], "2009.12.05.py3k.cpp.static": [], "2009.12.06.py3k.cpp.static": [ { "comment_text": "", "digests": { "md5": "0d2f3f77b2e155ae5db98fc912acae9f", "sha256": "bf31a1f91cef46bffa5475e06b1dc7fc1c3f15224e5bb922eab8f0fc7817575e" }, "downloads": -1, "filename": "numbytes-2009.12.06.py3k.cpp.static.tar.gz", "has_sig": false, "md5_digest": "0d2f3f77b2e155ae5db98fc912acae9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83013, "upload_time": "2009-12-08T22:22:34", "url": "https://files.pythonhosted.org/packages/5a/1f/d118789def14aae564f05a610ee4bdbb4cff234eb8c3c739ffdc444f74cb/numbytes-2009.12.06.py3k.cpp.static.tar.gz" } ], "2009.12.09.py3k.cpp.static": [ { "comment_text": "", "digests": { "md5": "b5b4323c8b77167442bfbf50d82c33bb", "sha256": "b171d5b00a81d6cd16611bdc17b0168067b676dd33bbb6ea34ec826262b27747" }, "downloads": -1, "filename": "numbytes-2009.12.09.py3k.cpp.static.tar.gz", "has_sig": false, "md5_digest": "b5b4323c8b77167442bfbf50d82c33bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84691, "upload_time": "2009-12-10T23:01:31", "url": "https://files.pythonhosted.org/packages/96/30/f860e30b3b89be1da99a54161bce6215dbc88f65143f178207da2ced4b96/numbytes-2009.12.09.py3k.cpp.static.tar.gz" } ], "2009.12.24.py3k.cpp": [ { "comment_text": "", "digests": { "md5": "2f68b2b498ee66644f0e3868f08932fe", "sha256": "d278059b86e7ca0d22643570b0852b79c06e7ac9baf9b644e0ff03fc351fff9e" }, "downloads": -1, "filename": "numbytes-2009.12.24.py3k.cpp.tar.gz", "has_sig": false, "md5_digest": "2f68b2b498ee66644f0e3868f08932fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80401, "upload_time": "2009-12-29T14:41:32", "url": "https://files.pythonhosted.org/packages/fc/81/1b70d3e9ed0f9d0b10120be4a817aa45a18944ce67acf90c7fd960edfac6/numbytes-2009.12.24.py3k.cpp.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2f68b2b498ee66644f0e3868f08932fe", "sha256": "d278059b86e7ca0d22643570b0852b79c06e7ac9baf9b644e0ff03fc351fff9e" }, "downloads": -1, "filename": "numbytes-2009.12.24.py3k.cpp.tar.gz", "has_sig": false, "md5_digest": "2f68b2b498ee66644f0e3868f08932fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80401, "upload_time": "2009-12-29T14:41:32", "url": "https://files.pythonhosted.org/packages/fc/81/1b70d3e9ed0f9d0b10120be4a817aa45a18944ce67acf90c7fd960edfac6/numbytes-2009.12.24.py3k.cpp.tar.gz" } ] }