Я хотел бы понять, как я могу получить часть набора данных с помощью индексов списка.
Обычно, когда я хочу получить часть набора данных, я делаю это при импорте данных. Например, если мне нужны все данные, кроме тех, где широта превышает 60 ° с.ш., я напишу:
with Dataset(filename) as DS:
latitude = DS.variables['latitude'][:] # [:] means all
y1 = 0; y2 = np.where(latitude>60)[0][0] # I add [0][0] because I want the first element where latitude is greater than 60°N
myvariable = DS.variables['varname'][y1:y2,:] # Load variable with only a portion of the latitudes and all the longitudes
Но теперь я хочу использовать код от кого-то другого , и они использовать индексы списка, чтобы получить часть набора данных. Например:
def grid(self, varname, indexs=None):
if indexs is None:
indexs = dict()
with Dataset(self.filename) as h:
dims = h.variables[varname].dimensions
sl = [indexs.get(dim, self.indexs.get(dim, slice(None) if dim in coordinates_dims else 0)) for dim in dims]
self.vars[varname] = h.variables[varname][sl]
Здесь я не знаю, что я должен передать в качестве индексов функции сетки. Я пытался сделать:
lat_list = latitude.tolist()
lat_list.index(60)
Но проблема в том, что у меня нет идеального 60 ° N в моем массиве широт, и я подозреваю, что я захочу найти все индексы ниже 60 ° N.
Буду приветствовать любые полезные комментарии. Заранее спасибо :)