3D array numpy -> pandas -> csv -> pandas -> 3D array numpy
Let's see step by step
Step 1, make example data
import numpy as np import pandas as pd #make list a = [[11, 12, 13, 14, 15], [15, 16, 17, 18, 19]] b = [[21, 22, 23, 24, 25], [25, 26, 27, 28, 29]] c = [] c.append(a) c.append(b) #make numpy npa = np.array(c) print('npa\n',npa) print('npa shape\n',npa.shape) #2 by 2 by 5
result
npa [[[11 12 13 14 15] [15 16 17 18 19]] [[21 22 23 24 25] [25 26 27 28 29]]] npa shape (2, 2, 5)
Step 2, numpy to pandas
#make numpy to panda m,n,r = npa.shape #numpy ->group indexing, reshape out_arr = np.column_stack((np.repeat(np.arange(m),n),npa.reshape(m*n,-1))) out_df = pd.DataFrame(out_arr, columns=['group','a','b','c','d','e']) print('pnadas\n',out_df) #pandas
result
group a b c d e 0 0 11 12 13 14 15 1 0 15 16 17 18 19 2 1 21 22 23 24 25 3 1 25 26 27 28 29
Step 3, save csv, load csv
#save to csv out_df.to_csv('test3Dpandas.csv', index=False) #load csv df = pd.read_csv('test3Dpandas.csv')
Step 4, pandas to numpy
#pandas to numpy npb = df.values npb = npb[:,1:] npb2 = npb.reshape(m,n,r) print('numpy\n',npb2)
result
numpy [[[11 12 13 14 15] [15 16 17 18 19]] [[21 22 23 24 25] [25 26 27 28 29]]]
No comments:
Post a Comment