gpt4 book ai didi

python - 沿第三维查找 xarray DataArray 的最高值。

转载 作者:行者123 更新时间:2023-12-01 08:52:07 25 4
gpt4 key购买 nike

我有一个 3 维 xarray DataArray,其中两个维度代表 x-y 网格,第三个维度代表彼此“堆叠”的网格层数。空的 DataArray 看起来像这样:

import xarray as xr
import numpy as np

data = np.zeros(shape=(layers,y,x))
dims=['layer','y_Axis', 'x_Axsis']
dataArray = xr.DataArray(data,dims=dims)

在例程中,我用 -1 到 1 之间的值逐层填充网格。

我现在的任务是将所有图层堆叠在一起,选择所有网格组合的最高值。因此,例如,当 5 层相互比较时,网格内的最高元素将保存在 2d numpy 数组中。

我可以通过循环遍历每一层来解决这个问题,将当前层的网格值与创建的 2d max_val_grid 进行比较,从而过滤第三维。然而这听起来效率很低。

你们中有人知道如何使用内部 xarray 或 numpy 函数而不循环来解决这个问题吗?

非常感谢!

最佳答案

您可以使用numpy.amax如下

numpy.amax(your_3D_array, axis=2)

这将选择 3D 数据最后一个轴上 your_3D_array 的最大值并返回 2D 数组。这是一个快速测试用例:

import numpy as np

x = np.arange(10)
y = np.arange(10, 20)
z = np.arange(20, 30)

x, y, z = np.meshgrid(x, y, z)

print(np.amax(z, axis=2))

关于python - 沿第三维查找 xarray DataArray 的最高值。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53042298/

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