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

如何修改xarray DataArray中orientation维度的坐标值?

解决xarray修改坐标标签值的问题

你之前用rename方法没效果是因为**rename是用来修改维度名称或变量名称的,不是修改坐标的标签值**——比如你想把维度名orientation改成别的才用它,而不是改这个维度下的具体坐标值。

给你两种可行的方法:

方法一:直接重新赋值坐标标签

如果已经明确知道新的坐标值列表,直接用assign_coords方法覆盖原坐标:

import xarray as xr
import numpy as np

da = xr.DataArray(
    data=np.ones((10,10,2)),
    dims=['x', 'y', 'orientation'],
    coords={
        "orientation": [1, 2] 
    }
)

# 修改坐标标签
da = da.assign_coords(orientation=['one', 'two'])

方法二:通过字典映射修改

如果需要基于原坐标值做映射(比如原坐标是动态生成的,不是固定的1、2),可以先定义映射字典,再生成新的坐标列表赋值:

coord_map = {1: 'one', 2: 'two'}
# 基于原坐标值生成新标签
new_orient_labels = [coord_map[val] for val in da.coords['orientation'].values]
da = da.assign_coords(orientation=new_orient_labels)

改完之后你可以用print(da.coords['orientation'])验证,输出会是:

<xarray.DataArray 'orientation' (orientation: 2)>
array(['one', 'two'], dtype='<U3')
Coordinates:
  * orientation  (orientation) <U3 'one' 'two'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 06:16:02