# Construction¶

## Local¶

Constructing local bolt arrays is nearly identical to using NumPy’s constructors.

 array(a[, dtype, order]) Create a local bolt array. ones(shape[, dtype, order]) Create a local bolt array of ones. zeros(shape[, dtype, order]) Create a local bolt array of zeros. concatenate(arrays[, axis]) Join a sequence of arrays together.

## Spark¶

Constructing bolt arrays in Spark is similar, except the constructors must be provided with a SparkContext. This is normally provided when running Spark interactively, or created at the beginning of a Spark job. In addition, you can specify which axes will be distributed. Briefly, arrays are represented using a subset of axes as the keys. So a five dimensional array specified with axis=(0, 1) would be represented as key,value pairs where the keys are two-tuples and the values are three-dimensional arrays. Bolt is designed so that its methods are invariant to the choice of distributed axes, but the choice will affect performance of many operations.

 array(a[, context, axis, dtype]) Create a spark bolt array from a local array. ones(shape[, context, axis, dtype]) Create a spark bolt array of ones. zeros(shape[, context, axis, dtype]) Create a spark bolt array of zeros. concatenate(arrays[, axis]) Join two bolt arrays together, at least one of which is in spark.

## Examples¶

Comparing local and distributed constructors

>>> a = blt.ones((2, 3, 4))
>>> a.shape
(2, 3, 4)
>>> a.mode
local

>>> a = blt.ones((2, 3, 4), sc)
>>> a.shape
(2, 3, 4)
>>> a.mode
spark


Comparing different axis choices

>>> x = np.arange(2 * 3 * 4).reshape(2, 3, 4)
>>> blt.array(x, sc, axis=(0, 1)).shape
(2, 3, 4)
>>> blt.array(x, sc, axis=(0, 1, 2)).shape
(2, 3, 4)

>>> blt.ones((2, 3, 4), sc, axis=(0, 1)).shape
(2, 3, 4)
>>> blt.zeros((2, 3, 4), sc, axis=(0,)).shape
(2, 3, 4)


## Detailed API¶

### Local

class bolt.local.construct.ConstructLocal[source]
static array(a, dtype=None, order='C')[source]

Create a local bolt array.

Parameters: a : array-like An array, any object exposing the array interface, an object whose __array__ method returns an array, or any (nested) sequence. dtype : data-type, optional, default=None The desired data-type for the array. If None, will be determined from the data. (see numpy) order : {‘C’, ‘F’, ‘A’}, optional, default=’C’ The order of the array. (see numpy) BoltArrayLocal
static concatenate(arrays, axis=0)[source]

Join a sequence of arrays together.

Parameters: arrays : tuple A sequence of array-like e.g. (a1, a2, ...) axis : int, optional, default=0 The axis along which the arrays will be joined. BoltArrayLocal
static ones(shape, dtype=<type 'numpy.float64'>, order='C')[source]

Create a local bolt array of ones.

Parameters: shape : tuple Dimensions of the desired array dtype : data-type, optional, default=float64 The desired data-type for the array. (see numpy) order : {‘C’, ‘F’, ‘A’}, optional, default=’C’ The order of the array. (see numpy) BoltArrayLocal
static zeros(shape, dtype=<type 'numpy.float64'>, order='C')[source]

Create a local bolt array of zeros.

Parameters: shape : tuple Dimensions of the desired array. dtype : data-type, optional, default=float64 The desired data-type for the array. (see numpy) order : {‘C’, ‘F’, ‘A’}, optional, default=’C’ The order of the array. (see numpy) BoltArrayLocal

### Spark

class bolt.spark.construct.ConstructSpark[source]
static array(a, context=None, axis=(0, ), dtype=None)[source]

Create a spark bolt array from a local array.

Parameters: a : array-like An array, any object exposing the array interface, an object whose __array__ method returns an array, or any (nested) sequence. context : SparkContext A context running Spark. (see pyspark) axis : tuple, optional, default=(0,) Which axes to distribute the array along. The resulting distributed object will use keys to represent these axes, with the remaining axes represented by values. dtype : data-type, optional, default=None The desired data-type for the array. If None, will be determined from the data. (see numpy) BoltArraySpark
static concatenate(arrays, axis=0)[source]

Join two bolt arrays together, at least one of which is in spark.

Parameters: arrays : tuple A pair of arrays. At least one must be a spark array, the other can be a local bolt array, a local numpy array, or an array-like. axis : int, optional, default=0 The axis along which the arrays will be joined. BoltArraySpark
static ones(shape, context=None, axis=(0, ), dtype=<type 'numpy.float64'>)[source]

Create a spark bolt array of ones.

Parameters: shape : tuple The desired shape of the array. context : SparkContext A context running Spark. (see pyspark) axis : tuple, optional, default=(0,) Which axes to distribute the array along. The resulting distributed object will use keys to represent these axes, with the remaining axes represented by values. dtype : data-type, optional, default=float64 The desired data-type for the array. If None, will be determined from the data. (see numpy) BoltArraySpark
static zeros(shape, context=None, axis=(0, ), dtype=<type 'numpy.float64'>)[source]

Create a spark bolt array of zeros.

Parameters: shape : tuple The desired shape of the array. context : SparkContext A context running Spark. (see pyspark) axis : tuple, optional, default=(0,) Which axes to distribute the array along. The resulting distributed object will use keys to represent these axes, with the remaining axes represented by values. dtype : data-type, optional, default=float64 The desired data-type for the array. If None, will be determined from the data. (see numpy) BoltArraySpark