我有 XYZ 类型的数据。例如:
x = numpy.arange(100)
y = numpy.arange(100)
Z = numpy.random.random_sample((100,))
我想对数据进行分箱,例如,重叠长度为dx = 2
和dy = 2
。我所做的是:
nx = len(x)
ny = len(y)
bin_data = np.zeros((nx, ny))
For i in range(nx):
For j in range(ny):
For a, b, c in zip(x,y,z):
if (x[i] < a) and (a < x[i] + dx):
if (y[j] < b) and (b < y[j] + dy):
bin_data[i,j] += c
对于这些小数据程序运行良好。但是,如果数据很大,我会花费太多时间。您能否推荐任何更快的算法来对 python 中重叠的数据进行分箱。我知道numpy.histogram2d
速度很快,但它不适用于重叠分箱。