This article is example source code for
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]]]