gpt4 book ai didi

python - Numpy 数组 : row/column wise argmax with random ties

转载 作者:行者123 更新时间:2023-11-28 20:58:15 25 4
gpt4 key购买 nike

这是我在 Python 2.7 中尝试使用 Numpy 做的事情。假设我有一个数组 a 定义如下:

a = np.array([[1,3,3],[4,5,6],[7,8,1]])

我可以执行 a.argmax(0)a.argmax(1) 来获取行/列明智的 argmax:

a.argmax(0)
Out[329]: array([2, 2, 1], dtype=int64)
a.argmax(1)
Out[330]: array([1, 2, 1], dtype=int64)

但是,当 a 的第一行出现平局时,我希望在平局之间随机决定 argmax(默认情况下,每当出现平局时,Numpy 都会返回第一个元素在 argmax 或 argmin 中)。

去年,有人提出了一个关于随机解决 Numpy argmax/argmin 关系的问题:Select One Element in Each Row of a Numpy Array by Column Indices

但是,题目针对的是一维数组。在那里,投票最多的答案对此很有效。还有第二个答案也试图解决多维数组的问题,但不起作用 - 即它不返回,对于每一行/列,最大值的索引与随机解决的关系。

既然我正在处理大数组,那么执行此操作的最有效方法是什么?

最佳答案

一种简单的方法是在开始时将一个小的随机数添加到所有值中,因此您的数据将如下所示:

a = np.array([[1.1827,3.1734,3.9187],[4.8172,5.7101,6.9182],[7.1834,8.5012,1.9818]])

这可以通过 a = a + np.random.random(a.shape) 来完成。

如果您稍后需要取回原始值,您可以执行 a.astype(int) 来删除小数部分。

关于python - Numpy 数组 : row/column wise argmax with random ties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51914697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com