使 DataArray 默认返回浮点数而不是 0 维数组

Tom*_*Cho 3 numpy python-xarray

考虑下面使用 DataArray 的示例:

In [34]: import xarray as xr

In [35]: da=xr.DataArray(np.random.rand(5,5,5), dims=['x', 'y', 'z'], coords=dict(x=range(5), y=range(5), z=range(5)))

In [36]: da.mean()
Out[36]: 
<xarray.DataArray ()>
array(0.547996)
Run Code Online (Sandbox Code Playgroud)

均值运算返回的对象类型实际上是一个没有任何维度的 DataArray。然而,有时这很麻烦,我想xarray在那时返回一个好的旧浮动。这可能吗?理想情况下会有类似“xr.options.return_mode”或类似的东西(而不是必须在每个函数中使用额外的参数)。

jha*_*man 5

目前,xarray 没有类似xr.options.return_mode. 来自 xarray文档

xarray 努力保持自洽:对 DataArray(或数据集)的操作返回另一个 DataArray(或数据集)对象。特别是,返回标量值的操作(例如,索引或聚合,如应用于所有轴的均值或总和)也将返回 xarray 对象。

不幸的是,这意味着我们有时必须在其他库中使用 xarray 时显式地转换结果。

因此,如果你想要一个 python 标量,其中任何一个都可以工作:

float(da.mean())
Run Code Online (Sandbox Code Playgroud)

或者

da.mean().item()
Run Code Online (Sandbox Code Playgroud)