Numpy ndarray 最小/最大方法中的错误

我假设我在这里做错了什么,但我正在 Pycharm 中开发一个项目,它在使用未定义 ( )的ndarray.max()函数时通知我。查看文档,确实表明参数没有默认值。initialparameter 'initial' unfilledinitial


在 Pycharm 中按住ctrl 并单击该ndarray.max()函数时,会打开以下函数:


    def max(self, axis=None, out=None, keepdims=False, initial, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 

    """

    a.max(axis=None, out=None, keepdims=False, initial=<no value>, where=True)


        Return the maximum along a given axis.


        Refer to `numpy.amax` for full documentation.


        See Also

        --------

        numpy.amax : equivalent function

    """

    pass

这似乎甚至没有做任何事情。无论哪种方式,代码都有效,只给出了一个 IDE 错误。


我使用了错误的功能吗?我知道有amaxandmax以及 package level numpy.max,但以上似乎是不需要的行为。


如果这是一个错误,我不知道如何报告它/开始一个问题或其他什么,哈哈。


三国纷争
浏览 208回答 3
3回答

婷婷同学_

它看起来是空的,因为它不是在 python 中实现的,可能是 C/C++,正如您可以从中弄清楚的那样# real signature unknown; NOTE: unreliably restored from __doc__——它只是提示您此函数具有什么参数。它甚至不是有效的 python ;)基于 amax 的文档:初始标量,可选输出元素的最小值。必须存在以允许对空切片进行计算。有关详细信息,请参阅减少。你最好将一些东西传递给 initial

慕森王

首先,正如其他人已经提到的,这部分是自动生成的。如果你想更好地理解这一点,你可以尝试通读 NumPy 文档(例如如何扩展 NumPy或FTPY 用户指南):) 还有很多关于这个主题的其他资源。我在您的帖子中看到两个问题:1.为什么PyCharm报错代码能正常运行?其他人已经指出max函数的实现是空的,因为代码是从其他地方获取的。无论如何,当您检查函数签名时,它是无效的(非默认参数遵循默认参数)。这会导致 PyCharm 警告您应该填充initial参数,因为它未填充。事实上,这只是警告,因为正如您所写的那样,一切工作正常,因为实际的实施工作正常(我面前没有它,但它应该遵循您在 中看到的内容np.max)。要消除此警告,您有以下三种选择:始终填充initial参数使用np.max或np.amax代替禁用给定语句的 PyCharm 警告(使用# noinspection PyArgumentList)如果你想用它做点什么,最好将它直接发布到NumPy 问题跟踪器或PyCharm 问题跟踪器)。2.我应该填写initial参数吗?这个参数可以不填。您可能永远不需要使用它(至少我没有)并且a.max()(a您的数组在哪里)是计算最大值的常用方法,并且比a.max(initial=??).但是您应该注意,在某些情况下,没有它就无法工作。像这样的特别简单的例子会引发 ValueError:import&nbsp;numpy&nbsp;as&nbsp;np np.empty(0).max()&nbsp;&nbsp;#&nbsp;or&nbsp;np.array([]).max()但是可能会有更多这样的隐藏案例(因为你有一个空切片而引发相同的错误):np.array([1,&nbsp;2,&nbsp;3])[3:].max()

RISEBY

在一个Ipython会话中,numpy 1.18 np.max??(如charm点击?)显示:def amax(a, axis=None, out=None, keepdims=np._NoValue,&nbsp;&nbsp; &nbsp; &nbsp;initial=np._NoValue, where=np._NoValue):&nbsp; &nbsp; &nbsp;.... docs&nbsp; &nbsp; &nbsp;return _wrapreduction(a, np.maximum, 'max', axis, None, out,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; keepdims=keepdims, initial=initial, where=where)File:&nbsp; &nbsp; &nbsp; /usr/local/lib/python3.6/dist-packages/numpy/core/fromnumeric.py所以initial给出了这个独特的numpy常量._NoValue。实际动作相当于&nbsp;np.maximum.reduce(a, ....)initial在 1.15 版本中添加。 np.maximum.reduce??文档提供了更多信息initial(通常适用于二进制文件ufunc)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python