You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python及xarray构建指定三维参数数据集?

用Python xarray实现指定数据集

问题说明

我尝试用Python编写对应参数的数据集,使用xarray库但未写出正确代码。以下是参数对应的集合与数据集内容:

集合定义

  • i(产品):i1, i2, i3, i4, i5, i6, i7, i8, i9, i10
  • j(处理单元):j1, j2, j3
  • s(生产站点):s1, s2, s3

参数表格 v(i,j,s)

s1s2s3
i1.j15
i2.j15
i3.j15
i4.j15
i5.j26
i6.j26
i7.j26
i8.j26
i9.j34
i10.j34

实现代码

import xarray as xr
import numpy as np

# 定义各维度的标签集合
products = ['i1', 'i2', 'i3', 'i4', 'i5', 'i6', 'i7', 'i8', 'i9', 'i10']
processing_units = ['j1', 'j2', 'j3']
production_sites = ['s1', 's2', 's3']

# 创建全NaN的3D数组,对应(i,j,s)三个维度的形状
v_data = np.full((len(products), len(processing_units), len(production_sites)), np.nan)

# 填充已知参数值
# 产品i1-i4,对应处理单元j1、生产站点s1,值为5
for i_idx in range(4):
    v_data[i_idx, processing_units.index('j1'), production_sites.index('s1')] = 5

# 产品i5-i8,对应处理单元j2、生产站点s2,值为6
for i_idx in range(4, 8):
    v_data[i_idx, processing_units.index('j2'), production_sites.index('s2')] = 6

# 产品i9-i10,对应处理单元j3、生产站点s3,值为4
for i_idx in range(8, 10):
    v_data[i_idx, processing_units.index('j3'), production_sites.index('s3')] = 4

# 构建xarray DataArray
v_array = xr.DataArray(
    data=v_data,
    dims=['i', 'j', 's'],
    coords={
        'i': products,
        'j': processing_units,
        's': production_sites
    },
    name='v'
)

# 转为Dataset(如果需要将多个变量整合)
dataset = xr.Dataset({'v': v_array})

# 打印验证结果
print(dataset)

验证方式

可以通过索引快速查看指定参数值,比如:

# 查看i1、j1、s1对应的值
print(dataset.v.sel(i='i1', j='j1', s='s1'))
# 查看i5、j2、s2对应的值
print(dataset.v.sel(i='i5', j='j2', s='s2'))

内容的提问来源于stack exchange,提问作者senadurgunlu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 10:07:34