如何对具有重复维度的 DataArray 进行转置?
How can I take the transpose for a DataArray with repeated dimensions?
假设我有一个尺寸为 (a, b, b)
:
的 DataArray
In [111]: da = xarray.DataArray(arange(2*5*5).reshape(2, 5, 5), dims=("a", "b", "b"))
如何进行转置,交换最后两个维度的顺序?
In [112]: da.T
结果
ValueError: repeated axis in transpose
和da.transpose("a", "b", "b")
一样。
我的数据数组包含协方差矩阵,所以最终维度重复是很自然的。
这似乎有效:
db = xarray.DataArray(da.values.T, dims=("a", "b", "b"))
从而绕过xarray。实验表明 db
仍然是与 da
相同的内存视图,这在我的情况下是完全可取的。
假设我有一个尺寸为 (a, b, b)
:
DataArray
In [111]: da = xarray.DataArray(arange(2*5*5).reshape(2, 5, 5), dims=("a", "b", "b"))
如何进行转置,交换最后两个维度的顺序?
In [112]: da.T
结果
ValueError: repeated axis in transpose
和da.transpose("a", "b", "b")
一样。
我的数据数组包含协方差矩阵,所以最终维度重复是很自然的。
这似乎有效:
db = xarray.DataArray(da.values.T, dims=("a", "b", "b"))
从而绕过xarray。实验表明 db
仍然是与 da
相同的内存视图,这在我的情况下是完全可取的。