【问题标题】:Python - save binned data to text filePython - 将分箱数据保存到文本文件
【发布时间】:2013-11-29 17:10:41
【问题描述】:

我想将一些直方图数据保存在 csv 文件中。这是我想出的代码:

ExportName_csv = 'ExportData/' + FileName + '.csv'
freq, bins = np.histogram(ValList,bins)
np.savetxt(ExportName_csv, izip(freq, bins), delimiter="\t")

对于每个 bin,我想将 bin 值和相应的计数 freq 保存在 ExportName_csv 中。我希望关于不同的值是不同行中的垃圾箱;每行中的值用逗号分隔。

使用当前代码,我收到错误IndexError: tuple index out of range。你有什么建议?

完整的追溯是:

np.savetxt(ExportName_csv, izip(freq, bins), delimiter="\t") 
   File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/nump‌​y/lib/npyio.py", line 976, in savetxt ncol = X.shape[1] 
IndexError: tuple index out of range

【问题讨论】:

  • 示例ValList 和完整的回溯将有助于更快地回答您的问题。
  • 注意逗号是',',而'\t'是制表符
  • 这是完整的回溯:np.savetxt(ExportName_csv, izip(freq, bins), delimiter="\t") File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/lib/npyio.py", line 976, in savetxt ncol = X.shape[1] IndexError: tuple index out of range
  • 在这里您可以找到ValList 值的示例,使用json.dump(ValList, f) 打印:cl.ly/text/2n420p2o2Y3S

标签: python numpy histogram


【解决方案1】:

首先,逗号是',',而不是\t

其次,你应该使用zip,而不是izip

>>> data = zip(*np.histogram(ValList,bins))
>>> np.savetxt('test.txt', data, delimeter=',')

【讨论】:

  • 注意,bins 的长度总是比freq 长一个,所以zip 切断了最后一个 bin 边缘。如果 bin 的间距相等,则不会丢失任何信息,但您应该注意这一点。
猜你喜欢
  • 2021-08-18
  • 1970-01-01
  • 2012-08-10
  • 2018-09-11
  • 1970-01-01
  • 2013-12-24
  • 2014-02-18
  • 1970-01-01
  • 2018-05-04
相关资源
最近更新 更多