Python, параллельный с R, для преобразования массивов в таблицу данных

1

Я хочу преобразовать многомерные массивы в таблицу данных (или матрицу). Обычно я использую 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. Любая помощь?

Теги:
multidimensional-array

1 ответ

0

Я нахожу решение в сравнении_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')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню