numpy配列をdataframeに変換する際に、インデックスを付与する方法について
n次元のnumpy配列をdataframeに変換する際、dataframeの1列目には1次元目のインデックス、2列目には2次元目のインデックス、・・・n列目にはn次元目のインデックス、n+1列目に配列の要素、となるようなデータフレームの作成方法をご教示賜りたいと存じます。
今までは、以下のとおり、行数が配列の要素数、列数がn+1列の2次元のnumpy配列を用意しておき、forループをn回繰り返して2次元配列を作成し、dataframeに変換しておりましたが、さすがに10次元くらいになるとインデントも深すぎて飽きてきます。
mynp = np.zeros(m1*m2*m3*...*mn, n+1)
for l1 in range(m1):
for l2 in range(m2):
for l3 in range(m3):
……
for ln in range(mn):
mynp[l1*m2*m3*m4***mn,l2*m3*m4****mn,...,ln] = x[l1,l2,...,ln]
mypd = pd.DataFrame(mynp)