Problem with numpy 2D Histogram
Jamie Mitchell
jamiemitchell1604 at gmail.com
Fri Jun 20 05:57:11 EDT 2014
On Friday, June 20, 2014 10:25:44 AM UTC+1, Peter Otten wrote:
> 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])
>
> #...
Thanks Peter.
I have changed my x and y data to float64 types but I am still getting the same error message?
Cheers,
Jamie
More information about the Python-list
mailing list