私は3つの配列を持っています:longitude(400,600)、latitude(400,600)、data(30,400,60); 私がやろうとしているのは、その場所(緯度と経度)に従ってデータ配列の値を抽出することです。
これが私のコードです:
import numpy
import tables
hdf = "data.hdf5"
h5file = tables.openFile(hdf, mode = "r")
lon = numpy.array(h5file.root.Lonitude)
lat = numpy.array(h5file.root.Latitude)
arr = numpy.array(h5file.root.data)
lon = numpy.array(lon.flat)
lat = numpy.array(lat.flat)
arr = numpy.array(arr.flat)
lonlist=[]
latlist=[]
layer=[]
fre=[]
for i in range(0,len(lon)):
for j in range(0,30):
longi = lon[j]
lati = lat[j]
layers=[j]
frequency= arr[i]
lonlist.append(longi)
latlist.append(lati)
layer.append(layers)
fre.append(frequency)
output = numpy.column_stack((lonlist,latlist,layer,fre))
問題は、「頻度」が私が望むものではないことです。データ配列を軸ゼロに沿って平坦化し、「頻度」が1つの場所で30の値になるようにします。特定の軸に沿ってndarrayをフラット化しますか?