【问题标题】:how to save feature matrix as csv file如何将特征矩阵保存为csv文件
【发布时间】:2016-04-01 05:06:52
【问题描述】:

我有几个 Image 的功能,经过图像预处理后,我有大量的数据需要在以后的工作中经常使用。所以为了节省时间,我想以 csv 格式保存图像特征的数据。以下图像特征为行属性:Intensity、Skewness、Kurtosis、Std_deviation Max5、Min5。

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

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

【问题讨论】:

  • 那么每个行属性都有六个 34560 的 numpy 数组?您想将其保存到单个 csv 文件中吗?
  • 如果您有任意对象,最简单的方法是pickle 它们,Python 用于序列化的词。如果在您的情况下都是 Numpy 数组,您可以使用 np.savenp.savez 将它们收起来,而无需从 .csv 读取它们并在将来将它们重新转换为 np.arrays。 np.load 把他们带回来。
  • @Sung 我有一个图像的每个体素共有 80 个特征和一个标签,即共有 81 个属性,每个属性是一个大小为 176526x1 的 numpy 列数组。我想将它们保存在一个文件中以节省时间,这样我就不需要每次都计算它们。
  • @roadrunner66:你的意思是我应该使用 np.save 分别保存每个属性并在我的 np.load 中重复使用它们。实际上数据是巨大的,每次使用 np.save 或 np.load 来处理 81 个不同的属性是非常忙碌的。

标签: python csv numpy image-processing


【解决方案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')

【讨论】:

  • 谢谢宋。如何添加属性名称。因为我有大量数据,如果我保存没有标题的数据,那么我会很困惑,哪一列代表什么特征。
  • 在这种情况下,您必须使用结构化数组。我在之前的帖子中发布了链接。
【解决方案2】:

例如,如果您将输出放入变量“结果”中,那么您可以使用以下命令将该结果保存为 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”。 我希望它能消除您的疑问,如果不是,请原谅我并纠正我。 谢谢。

【讨论】:

  • 感谢您的回复。上述解决方案显示 'numpy.ndarray' 对象没有属性 'to_csv' 的错误,因为我的结果是大小为 [176256,81] 的 numpy.ndarray。另一个问题是我还有一个 81 标头 的标头,例如 energy、entropy 等。那么你有什么建议。谢谢
猜你喜欢
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 1970-01-01
  • 2015-10-18
  • 2021-07-28
  • 2016-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多