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

如何重塑xarray Dataset?新增shot维度拆分原x维度

重塑xarray.Dataset新增shot维度

你可以直接用xarray内置的reshape方法实现维度重组,步骤如下:

  • 确认原数据集的x维度长度正好等于shot数量 × 单炮集x维度长度(这里200×1201=240200,完全匹配)
  • 调用reshape方法,将原x维度拆分为shot和新的x维度:
# 执行维度重塑
seisnc_2d_reshaped = seisnc_2d.reshape(x=("shot", "x"), shot=200, x=1201)

完成后,新数据集的维度就是shot:200, x:1201, y:2001,你可以直接用seisnc_2d_reshaped.isel(shot=n)索引第n个炮集(注意xarray索引从0开始,如果你习惯从1开始取炮集,需要用shot=n-1)。

如果reshape方法无法满足需求(比如需要保留原x坐标信息),可以通过构建多级索引再拆分的方式实现:

import pandas as pd
import xarray as xr

# 构建shot和单炮内x的坐标
shot_idx = range(200)
x_in_shot_idx = range(1201)

# 给原x维度设置多级索引(shot + x)
seisnc_2d = seisnc_2d.assign_coords(
    x=pd.MultiIndex.from_product(
        [shot_idx, x_in_shot_idx],
        names=["shot", "x"]
    )
)

# 拆分多级索引为独立维度
seisnc_2d_reshaped = seisnc_2d.unstack("x")

这种方式会保留每个维度的坐标信息,适合需要后续基于坐标做筛选的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:57:33