numpy.max函数有什么作用?

mar*_*rco 3 python numpy max

我去了一段代码,如下所示:

while numpy.max(abs(A - B)) > 0.01:
Run Code Online (Sandbox Code Playgroud)

我试图numpy.max用一些常规的Python(数学?)函数替换它,但我找不到究竟做了什么numpy.max.

我试过谷歌搜索,但我只发现: numpy.maximum这与numpy.max我想的不一样.

并且: numpy.amax这也不是我需要的.

有谁知道如何将这个numpy.max功能复制到一些标准的python中?

编辑:我使用的是Python 2.7

iCo*_*dez 5

numpy.max是一样的numpy.amax:

>>> import numpy
>>> numpy.max # Notice it says 'amax' in the output
<function amax at 0x0228B5D0>
>>> numpy.max is numpy.amax
True
>>>
Run Code Online (Sandbox Code Playgroud)

或者,更具体地说,max是该amax函数的别名.

此函数的用途列在您给出的文档链接中,但它似乎主要用于查找a内的最大值,numpy.array而不管它有多少嵌套级别.您可以使用一个简单的函数来模仿此行为以展平列表:

def flatten(lst):
    for item in lst:
        if isinstance(item, list):
            # Use 'yield from flatten(item)' in Python 3.3 or greater
            for sub_item in flatten(item):
                yield sub_item
        else:
            yield item
Run Code Online (Sandbox Code Playgroud)

内置max功能:

max(flatten(my_list))
Run Code Online (Sandbox Code Playgroud)

请参阅下面的演示:

>>> def flatten(lst):
...     for item in lst:
...         if isinstance(item, list):
...             for sub_item in flatten(item):
...                 yield sub_item
...         else:
...             yield item
...
>>> array = [[1, 2, 3], [4, 5, 6]]
>>> max(flatten(array))
6
>>>
Run Code Online (Sandbox Code Playgroud)

  • @iCodez - 该函数似乎是为了处理数组或标量而编写的.在那个代码示例中,`EccenAnom`可以是一个数组,而不仅仅是一个标量.(注意,函数的输入都记录为类似于数组的对象.任何涉及时间或日期的东西都是数组,例如`T1`.)在旁注中,原因是`np.min(2.0)`将返回一个标量(实际上是一个numpy浮点数,而不是传入的python浮点数)是numpy函数被推广用于处理任何形状或大小的数组,包括0长度数组.这是一个跨越numpy的模式.没理由为'min`打破它. (2认同)