## 8/10/2018

### 3D array numpy -> pandas ->csv -> pandas -> 3d array numpy

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'])

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)
```

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]]]
```