如何在没有重复的情况下从2个numpy数组中返回一个随机元素?

时间:2016-01-19 17:09:17

标签: python python-2.7 numpy

我有非常大的多维数组,例如2d for for循环。 我想在每次迭代时从这个数组中返回一个元素,之前不应返回此元素。我的意思是在迭代中返回一个元素。

1 个答案:

答案 0 :(得分:1)

没有看到任何代码,这就是我想要的。

  • 制作一个大小相同的2D数组,默认情况下只将布尔值设置为True(可用)
  • 当您的代码在2D数组中随机生成X,Y位置时,请先检查可用性数组:
    • 如果该位置的值为True(可用),则返回另一个Array中的值(无论存储在哪里的值),然后将该可用值设置为False。
    • 如果该位置的值为False(不可用),请继续尝试数组中的下一个值,直到找到一个可用值。 (这样做而不是再次击中随机数发生器。可用的元素越少,你就越需要“重新滚动”,这最终会变得非常缓慢。)

有意义吗?

编辑:我至少可以想到其他两种可能更快或更有效的方法,但这是一个简单的版本。