问题标签 [binning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3900 浏览

python - pandas - 根据另一列中的值对箱定义进行分箱

我正在努力完成这样的任务:我需要从数据框中离散化列中的值,并根据其他列中的值定义 bins。

对于一个最小的工作示例,让我们定义一个简单的数据框:

数据框如下所示:

现在我想介绍 column C,它将包含一个 bin 标签,对于 column 中的每个值都有不同的 bin A,即:

  • (-10,-1,0,1,10)对于A == 'one',
  • (-100,0,100)对于A == 'two',
  • (-999,0,1,2,3)A == 'three'.

期望的输出是:

我曾尝试使用pd.cutornp.digitize与 , 的不同组合mapapply但没有成功。

目前,我通过拆分框架并pd.cut分别应用于每个子集,然后合并以获取框架来实现结果,如下所示:

这可行,但我认为它不够优雅,我还预计生产中会出现一些速度或内存问题,当我将拥有数百万行的帧时。直说吧,我想这可以做得更好。

我将不胜感激任何帮助或想法...

0 投票
2 回答
6008 浏览

r - R计算对应于另一列的每个bin的一列的平均值

我有这些有两列的数据。正如您在图表中看到的,数据有太多的噪音。所以,我想用大小 5 离散化列“r”,并将每一行分配给它对应的 bin,然后计算每个 bin 的 f 的平均值。

在此处输入图像描述

因此,要通过该过程,查看从第 1 行开始的每一行将被分配到 bin [65-70],第 2 行将在 [60-65] 中打开......

然后对于最终结果,我想要每个 bin 的中点及其 f 值的平均值。S,这样我可以为 f 画一条线作为 f(r) 的函数

0 投票
1 回答
1395 浏览

python - 熊猫时间序列,在一个列上分箱并累积在箱中花费的时间

我有一个关于使用熊猫分箱的问题!这是一个简化的示例:我有一个数据框 df

这就是我想做的事情:我想对速度数据进行分类,例如 bins = [0,20,40,60,80]。然后,我希望根据速度分级对时间列值进行分级。之后,我想在垃圾箱中累积时间并绘制直方图。请帮忙

0 投票
0 回答
962 浏览

python - 对 2D 直方图进行过采样/网格化

我有一个 numpy 2D 直方图,它使用两个空间坐标(x_array 和 y_array)对数据点进行分类,并对每个 bin 中第三个 data_array 组件的值进行平均。

代码如下:

等等(x 和 y 在某些地方是颠倒的,我知道......这就是我让它工作的方式)。

我现在需要做的是对这些数据进行过采样(或网格化),即使用重叠的 bin 采样几次,这样整个采样就会移动,并且也向上(单独)移动半个 bin 宽度,以获得更平滑的图像。

我显然可以增加 bin 的数量来提高分辨率,但这只能在一定程度上起作用……在某个点上,有些 bin 没有任何数据点,因为它们是随机分布的。

我已经在这个上工作了一段时间,我只是被难住了。感谢您的任何帮助,您可以提供。

0 投票
0 回答
253 浏览

r - 使用 R 合并最大似然估计?

我已经看到许多使用R完成未合并最大似然估计的教程示例。但是,到目前为止,我还没有在 R 中找到任何合并最大似然估计的示例。虽然我当然可以尝试不同的软件,但我仍然有兴趣看看它是否可以在R中轻松实现。

例如,假设我正在测量一些放射性同位素的衰变,并且我已经获得了超过 250 个时间段的事件数量,每个时间段的持续时间为 $\Delta t$。每个 bin 中的事件数量可以通过泊松统计建模,每个 bin 的预期数量为 $$ \bar{N}_{bin} = \Delta t N_0\lambda e^{-\lambda t_{bin}} $ $ 所以分箱最大似然函数的对数由 $$ \sum_{bin} \left( N_{bin} \ln(\bar{N}_{bin}) - \bar{N}_{bin} -\ln(N_{bin}!) \right) $$ 我要估计的参数是$\lambda$和$N_0$。

所以我的问题是这是否可以使用R相对简单地完成。谢谢!

0 投票
2 回答
75 浏览

matlab - 如何在其他矩阵中捕获直接更大数字的索引?

考虑例子

现在我想要cB中数字的位置立即大于a中的数字。也就是说我想要a中的每个数字对应的5个位置。所以我的输出应该是

请帮忙。

0 投票
0 回答
1040 浏览

multidimensional-array - 分箱多维数据

我有大量的多维数据点。要点基本上是这样的:

有时维度的数量会上升到 20 左右,而这个 20d 空间中的点数可以上升到 1000 万左右。

我必须将所有维度都视为“依赖”来对这些数据点进行分类。所以这些点必须一起移动。我曾经做过一维的分箱,但是虽然我一直在绞尽脑汁想出算法,但在多维的情况下我到目前为止还没有成功。

我也找不到任何关于多维分箱的 java 示例。如果有人能给我一个关于如何在java中解决这个问题的想法,那将是很大的帮助。

0 投票
0 回答
457 浏览

python - 如何打印 hexbin reduce_C_function 的输出列表?

我有六边形分箱数据,并使用 C=vel 按速度对代码进行颜色编码。这很好用,但我想要一个计算标准偏差的列表和每个六角星中对象数量的列表。我用:

'reduce_C_function=np.std' 为我提供了每个六角星中速度 (vel) 的标准偏差,这是我想要的,但我也希望它能够将矢量打印到屏幕上。坐标 x 和 y 可以通过以下方式检索:

我以为我可以用 get_array 和 get_offset 得到每个六边形中的项目数:

但是我的 get_offsets() 创建了一个空向量,而 get_array() 似乎返回了每个六边形的平均速度值......我的速度值“vel”是 5513 个项目长,counts=imageh.get_array() 在与我的速度范围相同。我再次运行它三次以确保第三次尝试 get_array() 返回标准偏差范围内的 146 个值。如果属实,这将解决部分问题。

我想要的是速度的计算标准偏差......图像颜色条上使用的“reduce_C_function”的输出。我也只想要在每个六角星中找到的数字。目标是获取每个六边形的每个标准差,除以该六边形中的点数并创建加权标准差。我可以通过运行单独获得原始图像的六角星中的点数:

然后使用 get_array() 但我一直在想肯定有一种方法可以从原始语句中获取每个 hexbin 中的项目数?另外,如果您在速度上包含一个 np.mean 过滤器(第一个示例),作为一个额外的复杂因素,点和 bin 的数量会略有不同......所以直接从查询中选择每个六边形中的数字是最好的。

0 投票
1 回答
2390 浏览

r - 通过使用中断和分位数在数据框中动态创建箱失败?

编辑:我在之前共享的代码中犯了一个错误。我用“b”替换了“垃圾箱”,但错过了一个......

我现在也使用正确的data.frame(y而不是原来的df.score)

新代码:

seq.int(0, 1, length.out = (b + 1)) 中的错误:'length.out' 必须是非负数另外:警告消息:在 Ops.factor(b, 1) 中:+对因子没有意义

现在,如果我将代码拆分,则没有问题!!!

我在这里迷路了……

这是更多动态代码的一部分,根据数据集中的细节编织在一起。

所以我想动态创建垃圾箱并报告它们。该代码现在可以工作,但我不明白为什么当我使用“bins”这个词时,代码可以工作,而当使用“b”时它会失败......?


OLD 从这里开始,我需要将 bin 动态添加到数据框中,以便稍后报告它们。

因此,如果我想直接使用 bin var 做同样的事情,它会失败:

我在这里想念什么?

0 投票
1 回答
867 浏览

r - R Fill in empty cells after binning with cut() function

I am using the cut() function to bin a vector integergers. The procedure works well and provides the number of integers that fall into each bin, however for bins without a number, it isn't listed. I would like to fill these in such that there is a cell for each bin and for bins without numbers, it fills them in with 0. For example:

This gives:

I would like to fill in 2 with a 0 such that the output is:

Any and all help appreciated.