私は、異なるクラス/サブタイプ(何を呼び出すかわからない)とそれぞれの属性のレプリケートを格納するデータセットを持っています。基本的に、5つのサブタイプ/クラス、各サブタイプ/クラスの4つの複製、測定される100の属性があります。3次元xr.DataArray(Xarray)を軸に沿って2次元に展開/折りたたむ/折りたたむ?
またはnp.flatten
のような2次元をマージする方法がありますか?Xarray
?この中
、私はので、私は2次元配列(またはattributes vs. subtype/replicates
とpd.DataFrame
を持って暗くなりsubtype
とreplicates
をマージしたい
それは形式持っている必要がありません。。「coord_1 | coord_2」か何かをそれそれは、元のCOORD名を守れば有用であろう。たぶん、これを行うことができますgroupby
のようなものは、それは素晴らしいだろうxarray
へのネイティブ何かがありますか?Groupby
はいつも私を混乱させるがあります。
import xarray as xr
import numpy as np
# Set up xr.DataArray
dims = (5,4,100)
DA_data = xr.DataArray(np.random.random(dims), dims=["subtype","replicates","attributes"])
DA_data.coords["subtype"] = ["subtype_%d"%_ for _ in range(dims[0])]
DA_data.coords["replicates"] = ["rep_%d"%_ for _ in range(dims[1])]
DA_data.coords["attributes"] = ["attr_%d"%_ for _ in range(dims[2])]
# DA_data.coords
# Coordinates:
# * subtype (subtype) <U9 'subtype_0' 'subtype_1' 'subtype_2' ...
# * replicates (replicates) <U5 'rep_0' 'rep_1' 'rep_2' 'rep_3'
# * attributes (attributes) <U7 'attr_0' 'attr_1' 'attr_2' 'attr_3' ...
# DA_data.dims
# ('subtype', 'replicates', 'attributes')
# Naive way to collapse the replicate dimension into the subtype dimension
desired_columns = list()
for subtype in DA_data.coords["subtype"]:
for replicate in DA_data.coords["replicates"]:
desired_columns.append(str(subtype.values) + "|" + str(replicate.values))
desired_columns
# ['subtype_0|rep_0',
# 'subtype_0|rep_1',
# 'subtype_0|rep_2',
# 'subtype_0|rep_3',
# 'subtype_1|rep_0',
# 'subtype_1|rep_1',
# 'subtype_1|rep_2',
# 'subtype_1|rep_3',
# 'subtype_2|rep_0',
# 'subtype_2|rep_1',
# 'subtype_2|rep_2',
# 'subtype_2|rep_3',
# 'subtype_3|rep_0',
# 'subtype_3|rep_1',
# 'subtype_3|rep_2',
# 'subtype_3|rep_3',
# 'subtype_4|rep_0',
# 'subtype_4|rep_1',
# 'subtype_4|rep_2',
# 'subtype_4|rep_3']
すごい迫力で、それは私がオプションとして期待していたよりも優れているのは
.stack
が何のためにあるのかを正確です。感謝@stephanこれは本当に便利です –