一般需要四个部分:
xr.DataArray(
data,
coords={
"time": times,
"space": locs,
"const": 42,
"ranking": ("space", [1, 2, 3]),
},
dims=["time", "space"],
)
temp = 15 + 8 * np.random.randn(2, 2, 3)
precip = 10 * np.random.rand(2, 2, 3)
lon = [[-99.83, -99.32], [-99.79, -99.23]]
lat = [[42.25, 42.21], [42.63, 42.59]]
ds = xr.Dataset(
{
"temperature": (["x", "y", "time"], temp),
"precipitation": (["x", "y", "time"], precip),
},
coords={
"lon": (["x", "y"], lon),
"lat": (["x", "y"], lat),
"time": pd.date_range("2014-09-06", periods=3),
"reference_time": pd.Timestamp("2014-09-05"),
},
)
ds
通过以下命令了解各个属性:
ds.data_vars
ds.coords
ds.attrs
ds.temperature
ds = xr.Dataset()
ds["temperature"] = (("x", "y", "time"), temp)
ds["temperature_double"] = (("x", "y", "time"), temp * 2)
ds["precipitation"] = (("x", "y", "time"), precip)
ds.coords["lat"] = (("x", "y"), lat)
ds.coords["lon"] = (("x", "y"), lon)
ds.coords["time"] = pd.date_range("2014-09-06", periods=3)
ds.coords["reference_time"] = pd.Timestamp("2014-09-05")
values, items, __delitem__, get 和 update ()
。请注意,使用 _ _ setitem _ _ or update
将 DataArray 或 Pandas 对象分配给 DataSet 变量将自动将数组与原始数据集的索引对齐。ds.copy(deep=True)
,实现复制所有的datadrop_vars('name')
,删除指定变量
ds.drop_vars("temperature")
drop_dims()
,删除维度
ds.drop_dims("time")
rename()
,修改变量的名称ds.rename({"temperature": "temp", "precipitation": "precip"})
DataArray
都有一个可以通过 arr.variable
访问的底层变量。但是,没有在 DataSet
或 DataArray
之外完全描述变量。xarray
中,DataArray 对象的维度是其命名的维度轴,第 i 个维度的名称是 arr.dims [ i ]
。如果创建的数组没有维度名称,则默认维度名称为 dim _ 0、 dim _ 1
等。DataArray
的维度或维度集的数组。在通常的一维情况下,坐标数组的值可以松散地被认为是一维上的刻度标签。有两种类型的坐标数组: 维度坐标和非维度坐标(见下文)。可以从 arr.coord [ x ]
中检索名为 x 的坐标。DataArray 可以比维度具有更多的坐标,因为单个维度可以由多个坐标数组标记。但是,只能将一个坐标数组指定为特定维度的维度坐标数组。因此,len (arr.dims) < = len (arr.coords)
通常是。arr
的一维坐标数组,在 arr.dims
中同时使用名称和维度名称。维度坐标用于基于标签的索引和对齐,就像在熊猫身上找到的索引一样。数据框架或熊猫。系列。事实上,维度坐标使用熊猫。为引擎盖下的对象编制索引,以便进行有效的计算。在打印 DataArray 或 Dataset 时,维度坐标由 * 标记。arr.coords
中使用名称,但在 arr.dims
中不使用名称。这些坐标数组可以是一维的,也可以是多维的,它们对辅助标记非常有用。例如,在地球科学数据集中,当数据的物理坐标(如经纬度)与其逻辑坐标不同时,常常使用多维坐标。但是,没有索引非维度坐标,对利用索引的非维度坐标的任何操作都将失败。打印 arr.coords 将打印所有 arr 的坐标名称,并在括号中打印相应的维度。例如,coord _ name (dim _ name)123..
。arr.index [ x ]
检索。通过构造,len (arr.dims) = = len (arr.index)
ds["time"].to_index()
int、 float
和 str
对象是“标量”,而 list
或 tuple
不是。_ _ array _ _、 _ _ array _ ufunc _ _
和 _ _ array _ function _ _
协议。参考如下:
https://xarray.pydata.org/en/v0.8.0/data-structures.html