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