问题描述
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 轴应为 col2
。 col1
应该从 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 边缘(与 bins1
和 bins2
)