gpt4 book ai didi

python-3.x - xarray 相当于 Pandas 减法/加法

转载 作者:行者123 更新时间:2023-12-03 21:27:09 25 4
gpt4 key购买 nike

我正在寻找一种简洁的方法来对 DataArray 的单个维度进行算术运算,然后将结果作为新 DataArray 返回(更改和未更改的部分)。在 Pandas 中,我会使用 df.subtract() 来做到这一点,但我还没有找到用 xarray 做到这一点的方法。

这是我如何从 Pandas 的 x 维度中减去值 2:

data = np.arange(0,6).reshape(2,3)
xc = np.arange(0, data.shape[0])
yc = np.arange(0, data.shape[1])

df1 = pd.DataFrame(data, index=xc, columns=yc)
df2 = df1.subtract(2, axis='columns')

对于 xarray,虽然我不知道:
da1 = xr.DataArray(data, coords={'x': xc, 'y': yc}, dims=['x' , 'y'])
da2 = ?

最佳答案

在 xarray 中,您可以使用按维度名称广播来从数组的行或列中减去。

例如:

>>> foo = xarray.DataArray([[1, 2, 3], [4, 5, 6]], dims=['x', 'y'])

>>> bar = xarray.DataArray([1, 4], dims='x')

# subtract along 'x'
>>> foo - bar
<xarray.DataArray (x: 2, y: 3)>
array([[0, 1, 2],
[0, 1, 2]])
Dimensions without coordinates: x, y

>>> baz = xarray.DataArray([1, 2, 3], dims='y')

# subtract along 'y'
>>> foo - baz
<xarray.DataArray (x: 2, y: 3)>
array([[0, 0, 0],
[3, 3, 3]])
Dimensions without coordinates: x, y

这类似于 axis='columns'对比 axis='index' pandas 提供的选项,除了按名称引用所需的维度。

关于python-3.x - xarray 相当于 Pandas 减法/加法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44652960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com