Python:将3D数组中的值存储到csv

Var*_*lor 2 python csv arrays numpy

我有以下问题。我有一个3D数组,例如 matrix = np.zeros((30,30,100))每个条目都是一个坐标并获取一个值。因此matrix [0][0][0],坐标x = 0,y0,z = 0且值为0。现在我想将所有值存储在这样的csv中,其中前3行是坐标,第4行是相应值:

在此处输入图片说明

numpy是否有一种快速的方法来做到这一点?

Dav*_*ale 6

您可以使用pandas,它既可以重塑数组并将其保存为csv。

import numpy as np
import pandas as pd
# create an example array
a = np.arange(24).reshape([2,3,4])
# convert it to stacked format using Pandas
stacked = pd.Panel(a.swapaxes(1,2)).to_frame().stack().reset_index()
stacked.columns = ['x', 'y', 'z', 'value']
# save to disk
stacked.to_csv('stacked.csv', index=False)
Run Code Online (Sandbox Code Playgroud)

否则,您可以申请

np.ravel()
Run Code Online (Sandbox Code Playgroud)

到您的数组,然后使用此问题中的一种配方恢复索引。