【问题标题】:Reshaping 3D DataArray into 2d DataArray将 3D DataArray 重塑为 2d DataArray
【发布时间】:2021-09-07 17:38:11
【问题描述】:

我有以下形状的xarray dataarray

(10, 666, 999)("band", "y", "x")

我想将新的dataarray 变成(666*999, 10) 形状。 我该如何解决?

我试过ans = x_arr.transpose("y", "x", "band").reshape(666*999, 10)

但它不起作用。 AttributeError: 'DataArray' object has no attribute 'reshape'

参考,http://xarray.pydata.org/en/stable/generated/xarray.DataArray.html

【问题讨论】:

    标签: python pandas dask python-xarray


    【解决方案1】:

    您可以使用stack 将现有维度合并为一个新维度。在您的情况下,它类似于darr.stack(xy=["x", "y"])

    这是一个可重现的例子:

    x = xr.tutorial.load_dataset("air_temperature")
    print(x.air.shape)
    #(2920, 25, 53)
    
    x2 = x.air.stack(point=["lat", "lon"])
    print(x2.shape)
    #(2920, 1325)
    

    【讨论】:

    • 但是,就我而言,所需的输出是 (25*53, 2920)
    • 最后加上.transpose("point", ...)
    猜你喜欢
    • 1970-01-01
    • 2016-01-17
    • 2016-08-25
    • 2021-03-12
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    相关资源
    最近更新 更多