通过对数合并创建 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 轴应为 col2
。 col1
应该从 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 相同=])
我有一个由两列组成的 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 轴应为 col2
。 col1
应该从 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 相同=])