Create a dimarray¶
There are various ways of defining a DimArray instance.
Standard definition¶
Provide a list of axis values (axes= parameter) and a list of axis names (dims=) parameter.
>>> from dimarray import DimArray
>>> a = DimArray([[1.,2,3], [4,5,6]], axes=[['a', 'b'], [1950, 1960, 1970]], dims=['variable', 'time'])
>>> a
dimarray: 6 non-null elements (0 null)
0 / variable (2): 'a' to 'b'
1 / time (3): 1950 to 1970
array([[1., 2., 3.],
[4., 5., 6.]])
List of tuples¶
DimArray axes can also be initialized via a list of tuples (axis name, axis values):
>>> a = DimArray([[1.,2,3], [4,5,6]], axes=[('variable', ['a', 'b']), ('time', [1950, 1960, 1970])])
>>> a
dimarray: 6 non-null elements (0 null)
0 / variable (2): 'a' to 'b'
1 / time (3): 1950 to 1970
array([[1., 2., 3.],
[4., 5., 6.]])
Recursive definition : dict of dict¶
New in version 0.1.8.
It is possible to define a dimarray as a dictionary of dictionary. The only additional parameter needed is a list of dimension names, that should correspond to the dictionary’s depth.
>>> dict_ = {'a': {1:11,
... 2:22,
... 3:33},
... 'b': {1:111,
... 2:222,
... 3:333} }
>>> a = DimArray(dict_, dims=['dim1','dim2'])
>>> a.sort_axis(axis=0).sort_axis(axis=1) # dict keys are not sorted in python !
dimarray: 6 non-null elements (0 null)
0 / dim1 (2): 'a' to 'b'
1 / dim2 (3): 1 to 3
array([[ 11, 22, 33],
[111, 222, 333]])