Whats New

16.9.post1 (Release September 9, 2017)

Fix SciDB 16.9 compatibility. Use branch v15.12 for SciDB 15.12.

15.12 (Released March 21, 2016)

Support for SciDB 15.12. Use branch v15.7 for SciDB 15.7.

14.10 (Released November 4, 2014)


API Changes in 14.10

  • Slicing an array by a boolean array now produces a sparse result, preserving the location of the selected cells. The collapse method converts this array to the 1D dense array previously returned by boolean masking.
  • The merge() method was changed from a direct AFL call to a high-level join operator. Use robust.merge for the old behavior

14.8 (Released August 22, 2014)


  • Support for authenticated and encrypted connections to ScIDB
  • Fixed a bug where uploading large arrays using from_data resulted in scrambled cell locations in the database
  • Proper treatment of elementwise arithmetic on sparse arrays

14.7 (Released August 1, 2014)


  • Wider support for wrapping all of SciDB’s built-in datatypes, including strings, datetimes, and nullable values:

    >>> x
    SciDBArray('py1101328071989_00045<f0:string> [i0=0:2,1000,0]')
    >>> x.toarray()
    array([u'abc', u'def', u'ghi'], dtype=object)
  • A groupby() method for performing aggregation over groups:

  • Boolean comparison and filtering of arrays:

    >>> x = sdb.random((5,5))
    >>> (x > 0.7).toarray()
    array([[ True,  True, False, False, False],
           [ True,  True,  True, False, False],
           [False, False, False,  True,  True],
           [False, False,  True, False, False],
           [False,  True,  True, False, False]], dtype=bool)
    >>> x[x>0.7].toarray()
    array([ 0.83500619,  0.95791602,  0.94745933,  0.89868099,  0.97664716,
            0.7045693 ,  0.88949448,  0.88112397,  0.73766701,  0.94612052])
  • Pandas-like syntax for accessing and defining new array attributes:

    array['b'] = 'sin(f0+3)'
  • Lazy evaluation of arrays. Computation for most array operations are deferred until needed.

  • AFL queries now return lazy SciDBArrays instead of special class instances, which makes it easy to mix SciDBArray methods with raw AFL calls:

    >>> sdb.afl.build('<x:float>[i=0:5,10,0]', 'i').max()[0]
  • A cleaner syntax for chaining several AFL calls at once. The following two lines are equivalent:

    f = sdb.afl
    f.subarray(f.project(f.apply(x, 'f2', 'f*2'), 'f2'), 0, 5)
    x.apply('f2', 'f*2').project('f2').subarray(0, 5)
  • New element-wise operators: sqrt, floor, ceil, isnan

  • A cumulate() method for performing cumulative aggregation over arrays

  • Numerous bugfixes.