通过对数分箱创建 2D 图像

问题描述

我有一个由两列组成的 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 对数分箱。我想使用对数分箱,因为较小的值多于较大的值(即 bin 越大,越大值)。然后,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 边缘(与 bins1bins2 )