Long list to numeric multi-D array
Stephen Boulet
stephendotboulet at motorola_._com
Thu Feb 5 15:41:26 EST 2004
To respond to my own post, after a bit of digging, there is a much
faster way.
Coerce my list to a numarray:
bigList = inputarray(bigList,Float64)
Then just change its shape:
dims = [self.DUTS,self.UUTS,..,self.MEASURED]
dims.reverse()
dims = tuple(dims)
bigList.setshape(dims)
Stephen Boulet wrote:
> I have a long list of floats (1613808 elements long). It takes quite a
> while to load this into a 7 dimensional Numeric array.
>
> Is there any obvious way to speed this up?
>
> def insertData(self,data):
>
> # Start off with an array of the desired size
> # "self.MEASURED", etc., are integers
> arrayData = zeros([self.MEASURED, self.SWEPT, \
> self.TEMPS,self.DCS, self.IVS, self.UUTS, \
> self.DUTS], Float64)
>
> i = 0
>
> for device in range(self.DUTS):
> for unit in range(self.UUTS):
> for iv in range(self.IVS):
> for dc in range(self.DCS):
> for temp in range(self.TEMPS):
> for swept in range(self.SWEPT):
> for measured in range(self.MEASURED):
>
> arrayData[measured][swept][temp][dc][iv][unit][device] = bigList[i]
> i += 1
> return arrayData
>
> Stephen
More information about the Python-list
mailing list