Я хочу преобразовать многомерные массивы в таблицу данных (или матрицу). Обычно я использую R, поэтому я понимаю цель писать R-коды как
x = array(1:24, dim=c(3,4,2)) # a toy 3-dim array
library(data.table)
y = data.table(as.table(x))
y
# V1 V2 V3 N
# 1: A A A 1
# 2: B A A 2
# 3: C A A 3
# 4: A B A 4
# 5: B B A 5
# 6: C B A 6
# 7: A C A 7
# 8: B C A 8
# 9: C C A 9
# 10: A D A 10
# 11: B D A 11
# 12: C D A 12
# 13: A A B 13
# 14: B A B 14
# 15: C A B 15
# 16: A B B 16
# 17: B B B 17
# 18: C B B 18
# 19: A C B 19
# 20: B C B 20
# 21: C C B 21
# 22: A D B 22
# 23: B D B 23
# 24: C D B 24
# V1 V2 V3 N
colnames(y) = c("a","b","c","Y") # rename the columns of y
write.table(y, "y_out.txt", col.names=TRUE, row.names=FALSE, quote=FALSE) # save to external file
# a b c Y
# A A A 1
# B A A 2
# C A A 3
# A B A 4
# B B A 5
# C B A 6
# A C A 7
# B C A 8
# C C A 9
# A D A 10
# B D A 11
# C D A 12
# A A B 13
# B A B 14
# C A B 15
# A B B 16
# B B B 17
# C B B 18
# A C B 19
# B C B 20
# C C B 21
# A D B 22
# B D B 23
# C D B 24
Совсем недавно я изучаю Python. Затем я хочу преобразовать вышеуказанные коды R в коды Python и искать в Google (особенно Stack Overflow) и пытаться писать коды Python как
import numpy as np
import pandas as pd
x = np.arange(1,24+1).reshape(3,4,2) # a toy 3-dim array
# ??? pd.DataFrame
# ??? np.savetxt("y_out.txt", x, fmt='%.4f', delimiter=' ', newline='\n')
Проблемы всегда случаются. BTW, я использую Python 3.4. Любая помощь?
Я нахожу решение в сравнении_with_r, тогда мой ответ следует как
import numpy as np
import pandas as pd
x = np.arange(1,24+1).reshape(3,4,2) # a toy 3-dim array
y = pd.DataFrame([tuple(list(x)+[val]) for x, val in
np.ndenumerate(np.array(x).reshape(3,4,2))])
np.savetxt("y_out.txt", y, fmt='%d', delimiter=' ', newline='\n')