Я хочу выбрать только те временные шаги, в которых данные являются первыми за месяц. Причина в том, что для дат, которые не являются первым днем месяца, все данные равны nan
.
Создайте фиктивный набор данных:
times = [
pd.to_datetime('2017-01-01'),
pd.to_datetime('2017-01-31'),
pd.to_datetime('2017-02-01'),
pd.to_datetime('2017-02-02'),
pd.to_datetime('2017-03-01'),
pd.to_datetime('2017-03-29'),
pd.to_datetime('2017-03-30'),
pd.to_datetime('2017-04-01'),
]
data = np.ones((8, 3, 3))
data[[1, 3, 5, 6], :, :] = np.nan
lat = [0, 1, 2]
lon = [0, 1, 2]
ds = xr.Dataset(
{'data': (['time', 'lat', 'lon'], data)},
coords={
'lon': lon,
'lat': lat,
'time': times,
}
)
ds
Out[]:
<xarray.Dataset>
Dimensions: (lat: 3, lon: 3, time: 8)
Coordinates:
* lon (lon) int64 0 1 2
* lat (lat) int64 0 1 2
* time (time) datetime64[ns] 2017-01-01 2017-01-31 ... 2017-04-01
Data variables:
data (time, lat, lon) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0
В идеале я хочу вывод, который выбирает только [0, 2, 4, 7]
проиндексированное время.
<xarray.Dataset>
Dimensions: (lat: 3, lon: 3, time: 4)
Coordinates:
* lon (lon) int64 0 1 2
* lat (lat) int64 0 1 2
* time (time) datetime64[ns] 2017-01-01 2017-02-01 2017-03-01 2017-04-01
Data variables:
data (time, lat, lon) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0