【发布时间】:2019-12-08 05:16:02
【问题描述】:
我需要从计时计数器提供的计时直方图中恢复“原始数据”作为 .csv 文件。
我有下面的代码,但由于实际数据在每个 bin 中有数千个计数,for 循环需要很长时间,所以我想知道是否有更好的方法。
import numpy as np
# Example histogram with 1 second bins
hist = np.array([[1., 2., 3., 4., 5., 6., 7., 8., 9., 10.], [0, 17, 3, 34, 35, 100, 101, 107, 12, 1]])
# Array for bins and counts
time_bins = hist[0]
counts = hist[1]
# Empty data to append
data = np.empty(0)
for i in range(np.size(counts)):
for j in range(counts[i]):
data = np.append(data, [time_bins[i]])
我知道原始数据的分辨率将是最小的时间箱,但这对我的目的来说很好。 最后,这是为了能够生成另一个带有对数 bin 的直方图,我可以使用原始数据来完成。
编辑
我用来加载 CSV 的代码是
x = np.loadtxt(fname, delimiter=',', skiprows=1).T
a = x[0]
b = x[1]
data = np.empty(0)
for i in range(np.size(b)):
for j in range(np.int(b[i])):
data = np.append(data, [a[i]])
【问题讨论】:
-
你是如何从 CSV 文件中读取数据的?
-
@HS_nebula 我正在使用 np.loadtxt()
-
你能告诉我们你的 CSV 是什么样的吗?文件大概有多大?并发布您使用的涉及
np.loadtxt()的代码? -
我问这个问题是因为我认为问题在于您如何加载数据,这将影响您如何重建直方图。
-
x = np.loadtxt(fname, delimiter=',', skiprows=1).Ta = x[0]b = x[1]data = np.empty(0)for i in range(np.size(b)):for j in range(np.int(b[i])):data = np.append(data, [a[i]])
标签: python histogram recover raw-data