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

时间:2018-04-03 03:06:16

标签: 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)

来自mean操作的返回对象的类型实际上是没有任何维度的DataArray。然而,有时候这很麻烦,我希望xarray在那些时候返回一个好的浮动。这可能吗?理想情况下会出现像`xr.options.return_mode'之类的东西(而不是在每个函数中都使用额外的参数)。

1 个答案:

答案 0 :(得分:2)

目前,xarray没有像xr.options.return_mode那样的东西。来自xarray documentation

  

xarray努力实现自我一致:对DataArray的操作   (resp.Dataset)返回另一个DataArray(resp。Dataset)对象。在   特别是,返回标量值的操作(例如索引或   平均值或总和应用于所有轴的聚合也将返回   xarray对象。

     

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

因此,如果你想要一个python标量,其中任何一个都应该有效:

float(da.mean())

da.mean().item()