如何理解argmax的结果(不常见数组)

Make_fortune_in_silence

当我argmax在不常见的3维数组上应用时,遇到了一个问题,就像下面的代码所示:

import numpy as np
a = np.array([
    [
        [1, 5, 5, 2],
        [9, -6, 2, 8],
        [-3, 7, -9, 1]
    ],

    [
        [-1, 5, -5, 2],
        [9, 6, 2, 8],
        [3, 7, 9]
    ]
])
print('a, axis=0\n', np.argmax(a, axis=0))
print('a, axis=1\n', np.argmax(a, axis=1))
# print('a, axis=2\n', np.argmax(a, axis=2)) if this activated, Erros appears:numpy.AxisError: axis 2 is out of bounds for array of dimension 2.

b = np.array([
    [
        [1, 5, 5, 2],
        [9, -6, 2, 8],
        [-3, 7, -9, 1]
    ],

    [
        [-1, 5, -5, 2],
        [9, 6, 2, 8],
        [3, 7, 9, 9]
    ]
])
print('b, axis=0\n', np.argmax(b, axis=0))
print('b, axis=1\n', np.argmax(b, axis=1))
print('b, axis=2\n', np.argmax(b, axis=2))

结果:

a, axis=0

 [0 1 1]

a, axis=1

 [1 1]

b, axis=0

 [[0 0 0 0]

 [0 1 0 0]

 [1 0 1 1]]

b, axis=1

 [[1 2 0 1]

 [1 2 2 2]]

b, axis=2

 [[1 0 1]

 [1 0 2]]

对于array的结果b,我完全理解它的计算规则,但是对于array a,根据错误,就我而言,它不是真正的3D数组,但是为什么函数argmax仍然可以得到其结果呢?函数如何获得结果?

kareem_emad

B是Argmax知道如何导航的3d数组,没关系,但是A由于A是的2d数组而不同lists

当你说

print('a, axis=0\n', np.argmax(a, axis=0))

Argmax看你A

[
[list11,list12,list13],
[list21,list22,list23]

]

所以它尝试做的就是从每个

max(list11, list21) , max(list12,list22) , max(list13, list23)

这里的问题是,它依赖于<,>,=为列表实现运算符,实现如下

比较使用字典顺序:首先比较前两个项目,如果它们不同,则确定比较的结果;如果它们相等,则比较下两个项目,依此类推,直到用尽任何一个序列。

[1,2,3] > [2,3,1] # False
[1111,2,3] > [2,3,1] # True
[1,2,3] > [1,3,1] # False comparing second elements

为了获得更多的直觉,让我们尝试对A数组进行调整

a = np.array([ 
         [ 
             [1, 5, 5, 2], 
             [19, -6, 2, 18], 
             [-3, 7, -9, 1] 
         ], 

         [ 
             [-1, 5, -5, 2], 
             [9, 6, 2, 111118], 
             (-5555, 7, 9) 
         ] 
     ]) 
     print('a, axis=0\n', np.argmax(a, axis=0)) 

尝试将元组与列表进行比较将引发错误,因为没有实现此比较的运算符:

TypeError: '>' not supported between instances of 'tuple' and 'list'

因此,在您的情况下,它会比较每个列表中的第一个元素,仅此而已,这会使结果看起来很尴尬,可能对您来说是错误的。

如果必须这样做,则可能需要重写列表的那些运算符才能获得所需的结果,换句话说,实现列表的自定义比较运算符以正确地比较那些列表。

您可以阅读有关python中运算符重载的更多信息,这是一个以以下示例开头的基本示例:https : //www.programiz.com/python-programming/operator-overloading

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何重现不常见的404?

来自分类Dev

如何重现不常见的404?

来自分类Dev

C ++中的常见数学函数

来自分类Dev

列表中不常见的输出元素

来自分类Dev

使用forEach遍历对象(不常见)

来自分类Dev

Powershell剥离不常见的对象属性

来自分类Dev

在SQL中查找不常见的用户

来自分类Dev

C ++中不常见的FOR语句形式

来自分类Dev

C:仅在2个数组中打印不常见的元素

来自分类Dev

访问 PHP 中的数组,其中包含不常见的 var 名称

来自分类Dev

比较两个数组并在 SWIFT 3 中找到不常见元素的索引

来自分类Dev

如何计算最不常见祖先算法的时间复杂度?

来自分类Dev

NAT如何用于非标准或不常见的协议(或原始协议)

来自分类Dev

如何从两个文件中提取不常见的不区分大小写的文本?

来自分类Dev

您如何将这些不常见选项的zplug代码转换或转换为zinit语言?

来自分类Dev

如何从两个不同对象列表中获取不常见对象

来自分类Dev

如何找到两个大型数据帧之间不常见的日期时间

来自分类Dev

从DateTime列表中查找常见的DateTime,如果不常见则查找最常见的

来自分类Dev

如何获取常见的数组元素mongodb

来自分类Dev

使用 PHP 比较两个数组并将不常见的字符串存储在新数组中

来自分类Dev

获取数组中最常见的值,或显示混合结果

来自分类Dev

在Java中从两个不同的数组列表对象中找到不常见的通用所有元素

来自分类Dev

如何理解:常见的Lisp defstruct中的print-function

来自分类Dev

额外模块中不常见类型类的实例声明

来自分类Dev

从Counter中删除最不常见的元素

来自分类Dev

这个最不常见的祖先算法怎么了?

来自分类Dev

Techsmith Snagit的Windows安装程序的UI布局不常见

来自分类Dev

在编译时确定最不常见的祖先

来自分类Dev

页脚背景应倾斜,但中间的形状不常见

Related 相关文章

  1. 1

    如何重现不常见的404?

  2. 2

    如何重现不常见的404?

  3. 3

    C ++中的常见数学函数

  4. 4

    列表中不常见的输出元素

  5. 5

    使用forEach遍历对象(不常见)

  6. 6

    Powershell剥离不常见的对象属性

  7. 7

    在SQL中查找不常见的用户

  8. 8

    C ++中不常见的FOR语句形式

  9. 9

    C:仅在2个数组中打印不常见的元素

  10. 10

    访问 PHP 中的数组,其中包含不常见的 var 名称

  11. 11

    比较两个数组并在 SWIFT 3 中找到不常见元素的索引

  12. 12

    如何计算最不常见祖先算法的时间复杂度?

  13. 13

    NAT如何用于非标准或不常见的协议(或原始协议)

  14. 14

    如何从两个文件中提取不常见的不区分大小写的文本?

  15. 15

    您如何将这些不常见选项的zplug代码转换或转换为zinit语言?

  16. 16

    如何从两个不同对象列表中获取不常见对象

  17. 17

    如何找到两个大型数据帧之间不常见的日期时间

  18. 18

    从DateTime列表中查找常见的DateTime,如果不常见则查找最常见的

  19. 19

    如何获取常见的数组元素mongodb

  20. 20

    使用 PHP 比较两个数组并将不常见的字符串存储在新数组中

  21. 21

    获取数组中最常见的值,或显示混合结果

  22. 22

    在Java中从两个不同的数组列表对象中找到不常见的通用所有元素

  23. 23

    如何理解:常见的Lisp defstruct中的print-function

  24. 24

    额外模块中不常见类型类的实例声明

  25. 25

    从Counter中删除最不常见的元素

  26. 26

    这个最不常见的祖先算法怎么了?

  27. 27

    Techsmith Snagit的Windows安装程序的UI布局不常见

  28. 28

    在编译时确定最不常见的祖先

  29. 29

    页脚背景应倾斜,但中间的形状不常见

热门标签

归档