我在 Mathematica 中开发适当快速的分箱算法时遇到了一些麻烦。我有一个 T={{x1,y1,z1},{x2,y2,z2},....} 形式的大型(约 100k 个元素)数据集,我想将它放入一个 2D 数组中100x100 个 bin,bin 值由落入每个 bin 的 Z 值的总和给出。
目前,我正在遍历表的每个元素,使用 Select 根据 bin 边界列表选择它应该在哪个 bin 中,并将 z 值添加到占据该 bin 的值列表中。最后,我将 Total 映射到 bin 列表中,对它们的内容求和(我这样做是因为我有时想做其他事情,比如最大化)。
我曾尝试使用 Gather 和其他此类函数来执行此操作,但上述方法速度快得离谱,尽管我可能使用 Gather 很差。无论如何,按照我的方法进行排序仍然需要几分钟,我觉得 Mathematica 可以做得更好。有没有人有一个很好的高效算法方便?