填充xarray数据集变量等于维度的形状

填充xarray数据集变量等于维度的形状

我刚开始使用xarray,并且遇到了在文档中找不到的特定任务的麻烦。我创建了一个包含两个维度的数据集:

ds = xr.Dataset() ds['year'] = np.arange(100) ds['simulation'] = np.arange(1000)

我想接着一个数据变量添加到的数据集np.random.rand()一年模拟的坐标和等于尺寸如(1000,100)相同的形状。

我做到这一点的方式是:

ds['result'] = (('simulation','year'),np.random.rand(1000,100))

然而,必须在随机函数中指定形状似乎很奇怪,我确信xarray有一些不可思议的方式来做到这一点,我无法弄清楚。我希望能够实现的是这样的:

ds['result'] = (('simulation','year'),np.random.rand())

因此,随机函数的形状从尺寸上被引入。

我会很感激我能得到的任何帮助。

对于这种类型的构造,通常值得明确的是创建尺寸,坐标和变量。我认为这是你要做的。

ds = xr.Dataset()
ds['result'] = xr.DataArray(np.random.rand(1000,100),
                            dims=('simulation', 'year'),
                            coords={'simulation': np.arange(1000), 'year': np.arange(100)})

Xarray确实允许使用一些快捷方式的构造函数,但是当你刚刚开始时,它可能不那么容易混淆标准构造函数。

编辑1

这听起来像你真的想在结果数组的构造函数中使用year / simulation维度的大小。这可以这样做:

ds = xr.Dataset()

ds.coords['year'] = xr.DataArray(np.arange(100), dims=('year',))
ds.coords['simulation'] = xr.DataArray(np.arange(1000), dims=('simulation',))

ds['result'] = xr.DataArray(np.random.rand(ds.dims['simulation'], ds.dims['year']),
                            dims=('simulation', 'year'))
原文地址https://*.com/questions/50752154/fill-xarray-dataset-variables-equal-to-shape-of-dimensions
上一篇:SpringCloud微服务实战——搭建企业级开发框架(二十九):集成对象存储服务MinIO+七牛云+阿里云+腾讯云


下一篇:将ByteArrayOutputStream类型变量中的数据存储到文件中