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

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

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

最佳答案

您可以使用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)

否则,您可以申请
np.ravel()

到您的数组,然后使用配方in this question之一还原索引。

09-26 14:01