如何从2D列表中以Python方式随机选择一个索引,以使相应的元素与值匹配?

本德尔

我有一个二维的布尔值列表。我想从值是的列表中选择一个随机索引False例如,给出以下列表:

[[True, False, False],
 [True, True, True],
 [False, True, True]]

有效的选择是:[0, 1][0, 2],和[2, 0]

我可以保留一个有效索引的列表,然后用于random.choice从中进行选择,但是每次仅当此目的更改基础列表时,保留变量并对其进行更新就显得有些不合逻辑。

如果您的答案运行迅速,将获得加分。

威廉·范昂塞姆

我们可以像这样使用oneliner:

import numpy as np
from random import choice

choice(np.argwhere(~a))

a布尔数组。

这个工作原理如下:通过使用~a,我们否定了数组中的元素。接下来,我们np.argwhere用来构造k×2数组:一个数组,其中每一行都有两个元素:对于每个维,该值使相应的值具有as值False

通过choice(..)我们这样选择一个随机行。但是,我们不能直接使用它来访问元素。我们可以使用tuple(..)构造函数将其转换为元组:

>>> tuple(choice(np.argwhere(~a)))
(2, 0)

因此,您可以通过以下方式获取元素:

t = tuple(choice(np.argwhere(~a)))
a[t]

但是,当然,这并不奇怪:

>>> t = tuple(choice(np.argwhere(~a)))
>>> a[t]
False

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从列表中随机选择一个项目?

如何从数组中随机选择一个元素

将2D列表中的第一个匹配项添加到另一个列表(Python 3.4.2)

如何从列表中随机选择一个变量,然后在python中对其进行修改?

在Python中,如何随机选择一个不在第二个列表中的元素?

如何从向量或数组中随机选择一个元素?

如何测试从列表中随机选择一个元素?

如何使用LINQ在列表中查找下一个匹配元素的索引

Prolog:如何非均匀地从列表中随机选择一个元素?

从相同索引的列表元素中选择随机整数并生成一个列表

如何从列表中随机选择一个连续样本?

如何在SQL Server中搜索/选择一个组合索引值列表并获取完全匹配的行?

熊猫python从另一个列值中从列表列中随机选择值

给定2个列表,请从两个列表中查找一个随机的固定大小子集,以使每个列表中至少有一个值(最好是统一选择)

如何将一个列表中的索引匹配到另一个列表并存储值?

如何根据索引列表从2D列表中的每个1D列表中选择一个元素?

我如何从2D数组中选择值并添加到另一个2D数组Python中

从python中的2d数组列表中选择一个随机元素

找到一个列表的最小值,然后从另一个列表中打印相应的索引

在python中,给定一个列表列表,如何识别匹配元素的索引?

如何从2D数组中选择一个随机位置?

如何从Javascript列表中随机选择一个项目

从文本文件中随机选择一个人并更改相应的值

如何在不多次填充其中一个元素的情况下填充 2D 数组中的十个随机元素?

从python字典中的每个列表中随机选择一个值

如果值在具有匹配索引的 python 中的 2 个列表中,如何更改该值

如何从列表中随机选择一个项目?

从 Python 中随机选择的 2 个列表元素创建一个列表

如何在 Python 中匹配列表列表中元素的索引并返回结果(一个元素与其他元素的长度不同)?