Problem with numpy 2D Histogram
Peter Otten
__peter__ at web.de
Fri Jun 20 05:25:44 EDT 2014
Jamie Mitchell wrote:
> Hi folks,
>
> I'm trying to plot a 2D histogram but I'm having some issues:
> from pylab import *
> import numpy as np
> import netCDF4
> hist,xedges,yedges=np.histogram2d(x,y,bins=10)
> extent=[xedges[0],xedges[-1],yedges[0],yedges[-1]]
> imshow(hist.T,extent=extent,interpolation='nearest')
> colorbar()
> show()
>
> After the first line of code I get:
> TypeError: Cannot cast array data from dtype('O') to dtype('float64')
> according to the rule 'safe'
>
> I'm using python2.7, x and y are type 'numpy.ndarray'
The error message complains about the dtype, i. e. the type of the elements
in the array, not the array itself. Make sure the elements are floating
point numbers or something compatible, not arbitrary Python objects.
As a baseline the following works
from pylab import *
import numpy as np
x, y = np.random.randn(2, 100)
print "x", type(x), x.dtype
print "y", type(y), y.dtype
hist, xedges, yedges = np.histogram2d(x, y, bins=10)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
imshow(hist.T, extent=extent, interpolation='nearest')
colorbar()
show()
while this doesn't:
#...
x, y = np.random.randn(2, 100)
import decimal
y = np.array([decimal.Decimal.from_float(v) for v in y])
#...
More information about the Python-list
mailing list