我正在创建一个从ocean dataset
中提取数据的API我正在使用netCDF4 python模块来处理这些数据。 存在具有输入参数time_counter,deptht,y,x的多维变量vozocrtx。
根据文档,如果我想从数据集中提取此特定变量的数据,我可以
import netCDF4
url = 'http://navigator.oceansdata.ca/thredds/dodsC/giops/daily/201806/giops_2018061300_024.nc'
dataset = netCDF4.Dataset(url)
variable = dataset.variables['vozocrtx']
extracted_data = variable[0:1:1,0:50:1,0:10:1,0:10:1]
但是,我想要的是拥有一个包含提取和切片索引的变量,比如
data_indexes = 0:1:1,0:50:1,0:10:1,0:10:1
extracted_data = variable[data_indexes]
我想要做的是创建一个通用函数,它将根据输入(start,end和stride)* no提取数据。尺寸。
我尝试了一些内容并阅读了该文档,但无法找到任何有用的信息。任何提示或方向将不胜感激。
答案 0 :(得分:0)
#Step 1 - create a list of all the slices
list = []
list.append(np.s_[0:1:1])
list.append(np.s_[0:50:1])
list.append(np.s_[0:10:1])
list.append(np.s_[0:10:1])
#Step 2 - convert the list to a tuple
tuple_slice = tuple(list)
#Step 3 - use the tuple as the index input to extract the data
variable[tuple_slice]
感谢问题How can I create a slice object for Numpy array?和Store Numpy array index in variable我找到了解决问题的方法。