我有一个名为da_ffdi
的DataArray。它包含三个维度:time
、latitude
和longitude
。时间维度有一组连续的每小时标签,从1972-01-20T00:00:00到2020-06-30T00:00:00。
xarray.DataArray
'FFDI' time: 424680 latitude: 148 longitude: 244
Coordinates:
latitude (latitude) float32 -39.2 -39.163948 ... -33.9
longitude (longitude) float32 140.8 140.83786 ... 149.96214 150.0
time (time) datetime64[ns] 1972-01-20 ... 2020-06-30T23:00:00
array(['1972-01-20T00:00:00.000000000', '1972-01-20T01:00:00.000000000',
'1972-01-20T02:00:00.000000000', ..., '2020-06-30T21:00:00.000000000',
'2020-06-30T22:00:00.000000000', '2020-06-30T23:00:00.000000000'],
dtype='datetime64[ns]')
我有一个名为np_dates
的numpy数组。
array(['2013-03-27', '2019-03-25', '2013-04-27', '2013-03-21',
'2020-05-30', '2018-03-18', '2019-11-21', '2018-03-17',
'2013-04-28', '2008-03-14', '2014-02-09', '2013-05-03',
'2013-05-04', '2015-05-05', '2014-07-31', '2003-06-06',
'2018-02-14', '2018-04-14', '1972-04-23', '2014-01-01',
'1975-02-08', '2008-04-02', '1979-02-15', '1975-03-02',
'2001-02-21', '2006-08-16', '2001-03-16', '2018-03-25',
'2009-02-07', '2008-04-03', '2016-05-01', '1990-01-30',
'1998-03-22', '1982-05-19', '1986-03-20', '1987-11-23',
'2019-12-20', '1998-02-26', '1985-03-04', '2018-05-04'])
我想要实现的是能够从da_ffdi
中选择time
标签来自np_dates
的所有数据。
我跑了一下:
da_ffdi.sel(time=np_dates)
这引发了一个错误:
KeyError: "not all values found in index 'time'"
如何解决这个问题?这可以通过运行where
函数来实现吗?
发布于 2021-04-21 15:23:35
DataArray.isin
;来自文档:
lookup = xr.DataArray([-1, -2, -3, -4, -5], dims=["x"])
da.where(lookup.isin([-2, -4]), drop=True)
Out[36]:
<xarray.DataArray (x: 2)>
array([2., 4.])
Dimensions without coordinates: x
https://stackoverflow.com/questions/67172949
复制相似问题