[Numpy-discussion] large float32 array issue
Vincent Schut
schut at sarvision.nl
Wed Nov 3 04:54:36 EDT 2010
Hi, I'm running in this strange issue when using some pretty large
float32 arrays. In the following code I create a large array filled with
ones, and calculate mean and sum, first with a float64 version, then
with a float32 version. Note the difference between the two. NB the
float64 version is obviously right :-)
In [2]: areaGrid = numpy.ones((11334, 16002))
In [3]: print(areaGrid.dtype)
float64
In [4]: print(areaGrid.shape, areaGrid.min(), areaGrid.max(),
areaGrid.mean(), areaGrid.sum())
((11334, 16002), 1.0, 1.0, 1.0, 181366668.0)
In [5]: areaGrid = numpy.ones((11334, 16002), numpy.float32)
In [6]: print(areaGrid.dtype)
float32
In [7]: print(areaGrid.shape, areaGrid.min(), areaGrid.max(),
areaGrid.mean(), areaGrid.sum())
((11334, 16002), 1.0, 1.0, 0.092504406598019437, 16777216.0)
Can anybody confirm this? And better: explain it? Am I running into a
for me till now hidden ieee float 'feature'? Or is it a bug somewhere?
Btw I'd like to use float32 arrays, as precision is not really an issue
in this case, but memory usage is...
This is using python 2.7, numpy from git (yesterday's checkout), on arch
linux 64bit.
Best,
Vincent.
More information about the NumPy-Discussion
mailing list