通过对数合并创建 2D 图像

Creating a 2D image by logarithimal binning

我有一个由两列组成的 DataFrame,如下所示:

col1      col2
0.33      4.33
0.21      4.89
3.2       18.78
6.22      0.05
6.0       2.1
...       ...
...       ...

现在我想通过合并两列来创建一个 200 x 200 的 numpy 数组。 x 轴应为 col1,y 轴应为 col2col1 应该从 0 到 68 以对数方式装箱,col2 从 0 到 35 以对数方式装箱。我想使用对数装箱,因为较小的值比较大的值多(即箱子越来越大,越大值)。然后 200 x 200 数组应存储每个 bin 中的样本量(即计数)。

这有可能以有效的方式进行吗?

类似这样的方法可能对您有用...(请注意,您必须选择下端接近零的程度):

bins1 = np.logspace(np.log10(0.001), np.log10(68), num=201)
bins2 = np.logspace(np.log10(0.001), np.log10(35), num=201)

result = np.histogram2d(df['col1'], df['col2'], bins=[bins1, bins2])

...其中 result[0] 是 bin 中的计数,result[1]result[2] 是 bin 边缘(与 bins1 和 [=15 相同=])