Python,IndexError: arrays die als indexen worden gebruikt, moeten van het type integer (of boolean) zijn

Ik krijg een IndexError: arrays die als indices worden gebruikt, moeten van het type integer (of boolean) zijn op de regel voor pcolormesh, enig idee hoe dit aan te pakken.

script:

import numpy as np 
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
data = np.loadtxt('out (copie).txt')
lats = data[:,0]
lons = data[:,1]
codg_tec = data[:,2]
m = Basemap(projection = 'merc', llcrnrlon= -9, llcrnrlat=19, urcrnrlon= 12, urcrnrlat= 37,  resolution= 'i')
m.drawcoastlines()
lon, lat = np.meshgrid(lons, lats)
x, y = m(lon, lat)
cb = m.pcolormesh(x, y, np.squeeze(data[codg_tec]) , shading='flat', cmap=plt.cm.jet)
cbar = m.colorbar(cb, location = 'right', pad = '10%')
m.drawmapboundary()
m.drawmapscale()
m.drawmeridians(np.arange(-9,12,5), labels=[False,False,False,True])
m.drawparallels(np.arange(19,38,5), labels=[True,False,False,False])
m.drawstates()
m.drawcountries()
plt.title('CODG-vTEC on 02-01-2015')
plt.show() 

De fout:

Traceback (meest recente oproep als laatste):
 Bestand "color.py", regel 21, in <module>
 cb = m.pcolor(x, y, data[codg_tec] , shading='flat', cmap=plt.cm.jet)
IndexError: arrays die worden gebruikt voor as indices moeten een geheel getal (of boolean) type

Antwoord 1, autoriteit 100%

het probleem is opgelost door de float-array om te zetten in een int-array:

lats = data[:,0].astype (int)
lons = data[:,1].astype(int)
codg_tec = data[:,2].astype(int)

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes