Package: array_collections
ContentsWhat is array_collections?InstallationDocumentationGetting startedLatest source codeBug reportsLicense informationCitationWhat is array_collections?array_collections is a collection of numpy ndarray subclasses. Each array class serves an unrelated but broad purpose of its own. This package features 3 types of arrays: material_array, tuple_array, and property_array.InstallationGet the latest version of array_collections fromhttps://pypi.python.org/pypi/array_collections/If you have an installation of Python with pip, simple install it with:$ pip install array_collectionsTo get the git version, run:$ git clone git://github.com/yoelcortes/array_collectionsDocumentationarray_collections’s documentation is available on the web:http://array_collections.readthedocs.io/Getting startedAmaterial_arrayissues a RuntimeWarning when a non-positive or non-finite value is encountered.Create material_array:>>>arr=material_array([1,18])material_array([1,18])A negative value issues a RuntimeWarning:>>>arr[1]=-1__main__:1:RuntimeWarning:Encounterednegativeornon-finitevaluein'material_array'object.New arrays are normal numpy arrays:>>>arr+1array([2,19])Atuple_arrayis an immutable and hashable array:Create a tuple_array object:>>>arr=tuple_array([1,18])tuple_array([1,18])tuple_array objects are immutable:>>>arr[1]=0TypeError:'tuple_array'objectsareimmutable.tuple_array objects are hashable:>>>hash(arr)3713080549427813581New arrays are normal numpy arrays:>>>arr+1array([2,19])Aproperty_arrayallows for array-like manipulation of property objects. All entries in a property_array must be instances of FreeProperty. Setting items of a property_array sets values of Property objects instead.Use the PropertyFactory to create a Weight property class which calculates weight based on density and volume:>>>fromarray_collectionsimportPropertyFactory>>>>>>@PropertyFactory>>>defWeight(self):...'''Weight (kg) based on volume (m^3).'''...data=self.data...rho=data['rho']# Density (kg/m^3)...vol=data['vol']# Volume (m^3)...returnrho*vol>>>>>>@Weight.setter>>>defWeight(self,weight):...data=self.data...rho=data['rho']# Density (kg/m^3)...data['vol']=weight/rhoCreate dictionaries of data and initialize new properties:>>>water_data={'rho':1000,'vol':3}>>>ethanol_data={'rho':789,'vol':3}>>>weight_water=Weight('Water',water_data)>>>weight_ethanol=Weight('Ethanol',ethanol_data)>>>weight_waterWeight(Water)->3000(kg)>>>weight_ethanolWeight(Ethanol)->2367(kg)Create a property_array from data:>>>prop_arr=property_array([weight_water,weight_water])property_array([3000,2367])Changing the values of a property_array changes the value of its properties:>>># Addition in place>>>prop_arr+=3000>>>prop_arrproperty_array([6000,5367])>>># Note how the data also changes>>>water_data{'rho':1000,'vol':6.0}>>>ethanol_data{'rho':789,'vol':6.802281368821292}>>># Setting an item changes the property value>>>prop_arr[1]=2367>>>ethanol_data{'rho':789,'vol':3}New arrays have no connection to the property_array:>>>prop_arr-1000#  Returns a new arrayarray([5000.0,1367.0],dtype=object)>>>water_data#  Data remains unchanged{'rho':1000,'vol':6.0}A representative DataFrame can also be made from the property_array:>>>prop_arr.table()Weight(kg)Water6000.0Ethanol2367.0NoteThe DataFrame object contains the values of the properties, not the FreeProperty objects as a property_array would.Latest source codeThe latest development version of array_collections’s sources can be obtained at:https://github.com/yoelcortes/array_collectionsBug reportsTo report bugs, please use the array_collections’ Bug Tracker at:https://github.com/yoelcortes/array_collectionsLicense informationSeeLICENSE.txtfor information on the terms & conditions for usage
of this software, and a DISCLAIMER OF ALL WARRANTIES.Although not required by the array_collections’ license, if it is convenient for you,
please cite array_collections if used in your work. Please also consider contributing
any changes you make back, and benefit the community.CitationTo cite array_collections in publications use:Yoel Cortes-Pena (2019). array_collections: A collection of numpy ndarray subclasses.
https://github.com/yoelcortes/array_collections