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 -- https://mail.python.org/mailman/listinfo/python-list