python - 如何从相同的元素中随机选择索引
问题描述
在 numpy 中,我有两个数组a
,b
其中所有条目都是 1 或 0,我这样做c = a != b
了,现在我想从中随机选择一个索引(意思c
是true
,一个索引在哪里a
并且b
不同意),我该怎么做?
解决方案
你可以np.random.choice()
结合np.where()
.
输入:
>>> import numpy as np
>>> a = np.array([0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1])
>>> b = np.array([1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1])
>>> c = a != b
>>> c
array([ True, False, True, False, False, True, True, True, False,
False, True, False])
例子:
>>> np.random.choice(np.where(c)[0], size=1).item()
7
细分:首先取其中的c
索引True
:
>>> np.where(c)[0]
array([ 0, 2, 5, 6, 7, 10])
现在选择一个:
>>> np.random.choice(np.where(c)[0], size=1)
7
最后将第 0 个值作为标量使用.item()
.
推荐阅读
- javascript - 如何在 CSS/HTML/JS 上创建虚线
- r - 模型未能与 max|grad| 收敛
- android - 如何在 FlatList React Native 中实现复选框
- sql-server - 将日期时间从 12 小时格式转换为 24 小时格式
- javascript - 按字符串数组过滤对象数组
- pyspark - 在满足条件之前返回行值的排序行的火花聚合
- javascript - 在拖动时获取 Div 的新左侧位置百分比
- python - 用于句子分类的 Huggingface GPT2 和 T5 模型 API?
- javascript - 协助归因于 Silverpop
- php - 仅选择数组 1 中的值并存在于数组 2 中