首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >xarray -从DataArray数组中选择带有任意标签的数组中的数据

xarray -从DataArray数组中选择带有任意标签的数组中的数据
EN

Stack Overflow用户
提问于 2021-04-20 13:28:03
回答 1查看 63关注 1票数 0

我有一个名为da_ffdi的DataArray。它包含三个维度:timelatitudelongitude。时间维度有一组连续的每小时标签,从1972-01-20T00:00:00到2020-06-30T00:00:00。

代码语言:javascript
复制
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数组。

代码语言:javascript
复制
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的所有数据。

我跑了一下:

代码语言:javascript
复制
da_ffdi.sel(time=np_dates)

这引发了一个错误:

代码语言:javascript
复制
KeyError: "not all values found in index 'time'"

如何解决这个问题?这可以通过运行where函数来实现吗?

EN

回答 1

Stack Overflow用户

发布于 2021-04-21 15:23:35

DataArray.isin;来自文档:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67172949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档