Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python.announce > #1785

[ANN] bcolz v0.10.0

Path csiph.com!optima2.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!1.eu.feeder.erje.net!bcyclone03.am1.xlned.com!bcyclone03.am1.xlned.com!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <valentin@haenel.co>
X-Original-To python-announce-list@python.org
Delivered-To python-announce-list@mail.python.org
X-Spam-Status OK 0.004
X-Spam-Evidence '*H*': 0.99; '*S*': 0.00; 'binary': 0.05; 'context': 0.05; 'repository': 0.05; 'column': 0.07; 'pypi': 0.07; 'subject:ANN': 0.07; '(1,': 0.09; '1.0)': 0.09; 'compression': 0.09; 'git': 0.09; 'internally': 0.09; 'moreover,': 0.09; 'objects.': 0.09; 'url:github': 0.09; 'url:rst': 0.09; 'bug': 0.10; 'systems.': 0.11; 'url:)': 0.14; 'backend': 0.15; '(2,': 0.16; '...,': 0.16; '==========': 0.16; 'containers': 0.16; 'fixes.': 0.16; 'iterators': 0.16; 'numpy': 0.16; 'too).': 0.16; 'url:licenses': 0.16; 'url:talks': 0.16; 'memory': 0.17; 'cheap': 0.18; 'subject:] ': 0.19; '>>>': 0.20; 'changes': 0.20; 'windows': 0.20; '64-bit': 0.22; 'arrays': 0.22; 'skip:= 20': 0.22; "user's": 0.22; 'users,': 0.22; '(like': 0.23; 'performing': 0.23; 'tables': 0.23; 'unix': 0.24; 'install': 0.25; 'header:User-Agent:1': 0.26; 'example': 0.26; 'addition,': 0.27; '----': 0.27; 'to:no real name:2**1': 0.27; 'least': 0.27; '(although': 0.29; '32-bit': 0.29; 'fast.': 0.29; 'i/o': 0.29; 'objects': 0.29; 'typically': 0.29; 'allows': 0.30; 'minimal': 0.30; 'query': 0.30; 'operations': 0.31; 'at:': 0.31; 'useful': 0.33; 'platforms.': 0.33; 'list': 0.34; 'installing': 0.35; 'list:': 0.35; 'supports': 0.35; 'project': 0.36; 'url:org': 0.36; 'possible': 0.36; 'data.': 0.36; 'faster': 0.36; 'framework': 0.36; 'notes': 0.36; 'operating': 0.37; 'skip:9 10': 0.37; 'release': 0.37; 'charset :us-ascii': 0.37; 'doing': 0.38; 'several': 0.38; 'subject:[': 0.39; 'test': 0.39; 'data': 0.39; 'url:en': 0.39; 'takes': 0.39; 'resources': 0.39; 'to:addr:python.org': 0.40; 'received:de': 0.40; 'some': 0.40; 'care': 0.60; 'your': 0.60; 'url:group': 0.61; 'default': 0.61; 'real': 0.62; 'skip:n 10': 0.62; 'more': 0.63; 'complete': 0.63; 'visit': 0.64; 'license': 0.65; 'promise': 0.66; 'below.': 0.66; 'home': 0.67; 'finally': 0.70; 'carried': 0.76; 'removal': 0.79; 'column.': 0.84; 'flushing': 0.84; 'lastly,': 0.84; 'pip': 0.84; 'together,': 0.84; 'url:master': 0.84; 'url:readthedocs': 0.84; 'announcing': 0.91; 'url:latest': 0.91; 'url:reference': 0.91; 'improvement': 0.93; 'reducing': 0.93; 'url:url': 0.93; 'email addr:googlegroups.com': 0.95
X-Authentication-Warning kudu.in-berlin.de: esc set sender to valentin@haenel.co using -f
Date Thu, 16 Jul 2015 18:18:16 +0200
From Valentin Haenel <valentin@haenel.co>
To Bcolz <bcolz@googlegroups.com>, NumPy Discussion <numpy-discussion@scipy.org>, pydata@googlegroups.com, python-announce-list@python.org
Subject [ANN] bcolz v0.10.0
Mail-Followup-To Bcolz <bcolz@googlegroups.com>, NumPy Discussion <numpy-discussion@scipy.org>, pydata@googlegroups.com, python-announce-list@python.org
MIME-Version 1.0
Content-Type text/plain; charset=us-ascii
Content-Disposition inline
User-Agent Mutt/1.5.21 (2010-09-15)
X-Mailman-Approved-At Thu, 16 Jul 2015 18:27:06 +0200
X-BeenThere python-announce-list@python.org
X-Mailman-Version 2.1.20+
Precedence list
List-Id Announcement-only list for the Python programming language <python-announce-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-announce-list/>
List-Post <mailto:python-announce-list@python.org>
List-Help <mailto:python-announce-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=subscribe>
Approved python-announce-list@python.org
Newsgroups comp.lang.python.announce
Message-ID <mailman.590.1437064028.3674.python-announce-list@python.org> (permalink)
Lines 124
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1437064028 news.xs4all.nl 2915 [2001:888:2000:d::a6]:37590
X-Complaints-To abuse@xs4all.nl
X-Received-Bytes 8497
X-Received-Body-CRC 686299934
Xref csiph.com comp.lang.python.announce:1785

Show key headers only | View raw


=======================
Announcing bcolz 0.10.0
=======================

What's new
==========

This is a cleanup-and-refactor release with many internal optimizations
and a few bug fixes. For users, the most important improvement is the
new-and-shiny context manager for bcolz objects. For example for the
ctable constructor::

    >>> with bcolz.ctable(np.empty(0, dtype="i4,f8"),
    ...:                     rootdir='mydir', mode="w") as ct:
    ...:     for i in xrange(N):
    ...:        ct.append((i, i**2))
    ...:
    >>> bcolz.ctable(rootdir='mydir')
    ctable((100000,), [('f0', '<i4'), ('f1', '<f8')])
      nbytes: 1.14 MB; cbytes: 247.18 KB; ratio: 4.74
      cparams := cparams(clevel=5, shuffle=True, cname='blosclz')
      rootdir := 'mydir'
    [(0, 0.0) (1, 1.0) (2, 4.0) ..., (99997, 9999400009.0)
     (99998, 9999600004.0) (99999, 9999800001.0)]

This is very useful for on-disk objects since it takes care of flushing
the data automatically. It works with all the top-level functions as
listed in: http://bcolz.blosc.org/reference.html#top-level-functions.

For a complete list of changes check the release notes at:

https://github.com/Blosc/bcolz/blob/master/RELEASE_NOTES.rst


What it is
==========

*bcolz* provides columnar and compressed data containers that can live
either on-disk or in-memory.  Column storage allows for efficiently
querying tables with a large number of columns.  It also allows for
cheap addition and removal of column.  In addition, bcolz objects are
compressed by default for reducing memory/disk I/O needs. The
compression process is carried out internally by Blosc, an
extremely fast meta-compressor that is optimized for binary data. Lastly,
high-performance iterators (like ``iter()``, ``where()``) for querying
the objects are provided.

bcolz can use numexpr internally so as to accelerate many vector and
query operations (although it can use pure NumPy for doing so too).
numexpr optimizes the memory usage and use several cores for doing the
computations, so it is blazing fast.  Moreover, since the carray/ctable
containers can be disk-based, and it is possible to use them for
seamlessly performing out-of-memory computations.

bcolz has minimal dependencies (NumPy), comes with an exhaustive test
suite and fully supports both 32-bit and 64-bit platforms.  Also, it is
typically tested on both UNIX and Windows operating systems.

Together, bcolz and the Blosc compressor, are finally fulfilling the
promise of accelerating memory I/O, at least for some real scenarios:

http://nbviewer.ipython.org/github/Blosc/movielens-bench/blob/master/querying-ep14.ipynb#Plots

Other users of bcolz are Visualfabriq (http://www.visualfabriq.com/) the
Blaze project (http://blaze.pydata.org/), Quantopian
(https://www.quantopian.com/) and Scikit-Allel
(https://github.com/cggh/scikit-allel) which you can read more about by
pointing your browser at the links below.

* Visualfabriq:

  * *bquery*, A query and aggregation framework for Bcolz:
  * https://github.com/visualfabriq/bquery

* Blaze:

  * Notebooks showing Blaze + Pandas + BColz interaction: 
  * http://nbviewer.ipython.org/url/blaze.pydata.org/notebooks/timings-csv.ipynb
  * http://nbviewer.ipython.org/url/blaze.pydata.org/notebooks/timings-bcolz.ipynb

* Quantopian:

  * Using compressed data containers for faster backtesting at scale:
  * https://quantopian.github.io/talks/NeedForSpeed/slides.html

* Scikit-Allel

  * Provides an alternative backend to work with compressed arrays
  * https://scikit-allel.readthedocs.org/en/latest/bcolz.html

Installing
==========

bcolz is in the PyPI repository, so installing it is easy::

    $ pip install -U bcolz


Resources
=========

Visit the main bcolz site repository at:
http://github.com/Blosc/bcolz

Manual:
http://bcolz.blosc.org

Home of Blosc compressor:
http://blosc.org

User's mail list:
bcolz@googlegroups.com
http://groups.google.com/group/bcolz

License is the new BSD:
https://github.com/Blosc/bcolz/blob/master/LICENSES/BCOLZ.txt

Release notes can be found in the Git repository:
https://github.com/Blosc/bcolz/blob/master/RELEASE_NOTES.rst

----

  **Enjoy data!**

Back to comp.lang.python.announce | Previous | Next | Find similar | Unroll thread


Thread

[ANN] bcolz v0.10.0 Valentin Haenel <valentin@haenel.co> - 2015-07-16 18:18 +0200

csiph-web