raf*_*afa 3 python numpy dimension multidimensional-array python-xarray
是否存在扩展xarray.DataArray对象尺寸(和坐标)的方法?
我想获得类似于np.expand_dims的内容,同时为新的expand定义新的尺寸和坐标变量DataArray。
使用DataArray.assign_coords()I可以创建一个新的坐标变量,但是不会使用新轴扩展数组本身。
我同意某种方法来做到这一点是有用的。它目前并不直接存在于 xarray 中,但我鼓励您在 GitHub 上提交问题来讨论新功能的 API 和/或提出实现它的拉取请求。
新xarray.broadcast函数包含一些可能足以满足此目的的相关功能:
import xarray as xr
import numpy as np
data = xr.DataArray([1, 2, 3], dims='x')
other = xr.DataArray(np.zeros(4), coords=[('y', list('abcd'))])
data2, other2 = xr.broadcast(data, other)
print(data2)
# <xarray.DataArray (x: 3, y: 4)>
# array([[1, 1, 1, 1],
# [2, 2, 2, 2],
# [3, 3, 3, 3]])
# Coordinates:
# * x (x) int64 0 1 2
# * y (y) |S1 'a' 'b' 'c' 'd'
Run Code Online (Sandbox Code Playgroud)
小智 5
在xarray v0.10.0,我使用的组合assign_coords(),并expand_dims()添加一个新的层面和坐标变量。
例如:
import xarray as xr
import numpy as np
data = xr.DataArray([1, 2, 3], dims='x', coords={'x': [10, 20, 30]})
data_newcoord = data.assign_coords(y='coord_value')
data_expanded = data_newcoord.expand_dims('y')
print(data_expanded)
# <xarray.DataArray (y: 1, x: 3)>
# array([[1, 2, 3]])
# Coordinates:
# * x (x) int64 10 20 30
# * y (y) <U11 'coord_value'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2141 次 |
| 最近记录: |