【发布时间】:2015-07-21 21:36:10
【问题描述】:
假设我们有一个n*n 网格。我们想选择这个网格中不相邻的k << n 随机单元格。如果我们用一个包含0 和1 的二维 Numpy 数组来模拟这个网格,那么在 Numpy/Python 中最有效的方法是什么?
有效示例:
无效示例:
【问题讨论】:
-
你想从哪个发行版中提取?您是否想要来自所有非相邻像素的 k 元组的空间中的统一样本,因为这些类型的组合采样问题可能非常困难(例如,具有固定行和列总和的采样矩阵)即使它们看起来乍一看很容易。
-
@Mr.F 我正在寻找制服样品。我不是在寻找所有的 k 元组。只需一个 k 元组的非相邻像素就可以了。
-
如果网格中的单元格真的很稀疏,那么我只会进行拒绝抽样。通过均匀采样生成一些候选点,然后检查它们是否相邻,重复直到找到一组有效的点。您可以对稀疏数据(即点坐标)进行此检查,而不是检查完整的 n*n 网格。
-
但它是 all 这样的 k 元组的 空间,当你想要进行平局时你必须描述(尽管在这种情况下它似乎有可能一次按顺序对一个像素进行采样,然后将其边界消隐,最终可能会产生统一的 k 元组。
-
我也在考虑这种顺序采样。那是我的第一个选择。同时,我想知道是否有更有效的方法来做到这一点。
标签: python numpy random-sample