当前位置: 首页 > 面试题库 >

numpy:argmin()和argmax()函数的逻辑是什么?

胥玮
2023-03-14
问题内容

我无法理解argmaxargmin与axis参数一起使用时的输出。例如:

>>> a = np.array([[1,2,4,7], [9,88,6,45], [9,76,3,4]])
>>> a
array([[ 1,  2,  4,  7],
       [ 9, 88,  6, 45],
       [ 9, 76,  3,  4]])
>>> a.shape
(3, 4)
>>> a.size
12
>>> np.argmax(a)
5
>>> np.argmax(a,axis=0)
array([1, 1, 1, 1])
>>> np.argmax(a,axis=1)
array([3, 1, 1])
>>> np.argmin(a)
0
>>> np.argmin(a,axis=0)
array([0, 0, 2, 2])
>>> np.argmin(a,axis=1)
array([0, 2, 2])

如您所见,最大值是点(1,1),最小值是点(0,0)。因此,按照我的逻辑,当我运行时:

  • np.argmin(a,axis=0) 我期望 array([0,0,0,0])
  • np.argmin(a,axis=1) 我期望 array([0,0,0])
  • np.argmax(a,axis=0) 我期望 array([1,1,1,1])
  • np.argmax(a,axis=1) 我期望 array([1,1,1])

我对事物的理解有什么问题?


问题答案:

通过添加axis参数,NumPy分别查看行和列。如果未指定,则将数组展a平为单个一维数组。

axis=0表示该操作依次在2D数组的列中 向下 执行a

例如,np.argmin(a, axis=0)返回四列中每一列的最小值的索引。每列中的最小值在下面以 粗体显示

>>> a
array([[ **1** ,  **2** ,  4,  7],  # 0
       [ 9, 88,  6, 45],  # 1
       [ 9, 76,  **3** ,  **4** ]]) # 2

>>> np.argmin(a, axis=0)
array([0, 0, 2, 2])

另一方面,axis=1表示该操作 的行执行a

这意味着np.argmin(a, axis=1)返回,[0, 2, 2]因为a有三行。第一行的最小值的索引为0,第二行和第三行的最小值的索引为2:

>>> a
#        0   1   2   3
array([[ **1** ,  2,  4,  7],
       [ 9, 88,  **6** , 45],
       [ 9, 76,  **3** ,  4]])

>>> np.argmin(a, axis=1)
array([0, 2, 2])


 类似资料:
  • 问题内容: 众所周知,某些Python的数据结构使用 哈希表 存储诸如或的项目。因此,这些对象没有顺序。但似乎,对于某些数字序列,这是不正确的。 例如,请考虑以下示例: 但是,如果我们进行一些小的更改,则无法排序: 所以问题是:Python的哈希函数如何在整数序列上工作? 问题答案: 尽管SO的问题及其顺序有很多问题,但没有人解释哈希函数的算法。 因此,这里您所需要的就是知道python如何计算哈

  • E.4.1 介绍 包含文件: !include "LogicLib.nsh" 使用 NSIS 的宏来提供各种逻辑基本语句,不需要预先添加函数。 E.4.2 基本语句 If|Unless..{ElseIf|ElseUnless}..[Else]..EndIf|EndUnless - 有条件的执行一个语句区块,取决于表达式。 AndIf|AndUnless|OrIf|OrUnless - 给 If

  • 我正试图从现实中解决一个问题 “偶数总和” 但是我不能这样做。下面是问题。 即使是总和也是两个玩家的游戏。玩家将获得N个正整数序列并轮流进行。在每个回合中,玩家选择一个非空切片(连续元素的子序列),使得该切片中的值之和是偶数,然后删除切片并连接序列的其余部分。第一个无法做出合法举动的玩家将输掉比赛。 如果你和你的对手玩这场游戏,你想知道你是否能赢,假设你和对手都玩得很好。你先走。 写一个函数:

  • 本文向大家介绍什么是JavaScript中的逻辑运算符?,包括了什么是JavaScript中的逻辑运算符?的使用技巧和注意事项,需要的朋友参考一下 JavaScript支持以下逻辑运算符。假设变量A持有10,变量B持有20,那么, 序号 运算符和说明 1 &&(逻辑与) 如果两个操作数都不为零,则条件变为true。 例如:(A && B)是真的。 2 | | (逻辑或) 如果两个操作数中的任何一个

  • 本文向大家介绍MyBatis 逻辑分页和物理分页的区别是什么?相关面试题,主要包含被问及MyBatis 逻辑分页和物理分页的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 逻辑分页是一次性查询很多数据,然后再在结果中检索分页的数据。这样做弊端是需要消耗大量的内存、有内存溢出的风险、对数据库压力较大。 物理分页是从数据库查询指定条数的数据,弥补了一次性全部查出的所有数据的种种缺点,比如需要大

  • 问题内容: 我碰到了Java行,并对它的输出感到困惑。您能否解释一下此代码背后的逻辑 输出: 问题答案: 好吧,它等效于: 真正地将原始内容显式转换为只是使其调用而不是。 我相信to 转换 实际上首先 要进行隐式加宽转换-就像这样: 这些帮助有用?