如何将特征矩阵保存为csv文件

时间:2016-04-01 05:06:52

标签: python csv numpy image-processing

我有Image的几个功能和图像预处理之后我有大量的数据需要在将来的作品中经常使用。因此,为了节省时间,我想以csv格式保存图像功能的数据。以下图像功能是行属性:强度,偏斜度,峰度,Std_deviation Max5,Min5。

这里的每个图像特征都是一个大小不一致的数组(34560,1)。

如何制作包含所有这些图像功能的csv文件。

2 个答案:

答案 0 :(得分:1)

如果要将属性名称包含在numpy数组中,可以使用structured array。但这会使事情变得复杂一些。我宁愿用相同的类型保存numpy数组,并将属性名称保存在其他地方。这更直接,更容易使用。

示例:为简单起见,我们假设您有三个长度为4的col数组:a,b,c

a -> array([[1],
           [2],
           [3],
           [4]])

a.shape -> (4,1)

b和c数组具有相同的数组形状。

为了更快地访问数据,最好将其作为行数组,以便在加载时连续存储在磁盘和内存中。

a = a.ravel(); b = b.ravel(); c = c.ravel()
a - > array([1, 2, 3, 4])
a.shape -> (4,)

然后,将它们堆叠成一个大型数组并将其保存到csv文件中。

x = np.vstack((a,b,c))
array([[1, 2, 3, 4],
       [5, 6, 7, 8],
       [9, 10, 11, 12]])
x.shape -> (3,4)

然后,只需将此堆叠数组保存到csv文件中。

np.savetxt('out.csv', x, delimiter=',')

这可以在一行中完成:

np.savetxt('out.csv', np.vstack(a.ravel(), b.ravel(), c.ravel()), delimiter='x')

答案 1 :(得分:0)

例如,如果您将输出放入变量“result”中,则可以使用以下命令将该结果保存为csv格式

import pandas as pd
result = "......................"(your expression)
result1 = pd.DataFrame({'col1':result[:,0],'col2':result[:,1]})
result1.to_csv('Myresult.csv', header = False)

代替“ Myresult ”,你可以提出你想要的输出路径。在我的情况下,它将像“ C:\ Users \ dinesh.n \ Desktop \ Myresult.csv ”。 如果不是请原谅我并纠正我,我希望它能清除你的怀疑。 谢谢。