3 回答

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
它看起來是空的,因?yàn)樗皇窃?python 中實(shí)現(xiàn)的,可能是 C/C++,正如您可以從中弄清楚的那樣# real signature unknown; NOTE: unreliably restored from __doc__
——它只是提示您此函數(shù)具有什么參數(shù)。它甚至不是有效的 python ;)
基于 amax 的文檔:
初始標(biāo)量,可選
輸出元素的最小值。必須存在以允許對空切片進(jìn)行計(jì)算。有關(guān)詳細(xì)信息,請參閱減少。
你最好將一些東西傳遞給 initial

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
首先,正如其他人已經(jīng)提到的,這部分是自動(dòng)生成的。如果你想更好地理解這一點(diǎn),你可以嘗試通讀 NumPy 文檔(例如如何擴(kuò)展 NumPy或FTPY 用戶指南):) 還有很多關(guān)于這個(gè)主題的其他資源。
我在您的帖子中看到兩個(gè)問題:
1.為什么PyCharm報(bào)錯(cuò)代碼能正常運(yùn)行?
其他人已經(jīng)指出max
函數(shù)的實(shí)現(xiàn)是空的,因?yàn)榇a是從其他地方獲取的。無論如何,當(dāng)您檢查函數(shù)簽名時(shí),它是無效的(非默認(rèn)參數(shù)遵循默認(rèn)參數(shù))。這會(huì)導(dǎo)致 PyCharm 警告您應(yīng)該填充initial
參數(shù),因?yàn)樗刺畛?。事?shí)上,這只是警告,因?yàn)檎缒鶎懙哪菢樱磺泄ぷ髡?,因?yàn)閷?shí)際的實(shí)施工作正常(我面前沒有它,但它應(yīng)該遵循您在 中看到的內(nèi)容np.max
)。
要消除此警告,您有以下三種選擇:
始終填充
initial
參數(shù)使用
np.max
或np.amax
代替禁用給定語句的 PyCharm 警告(使用
# noinspection PyArgumentList
)
如果你想用它做點(diǎn)什么,最好將它直接發(fā)布到NumPy 問題跟蹤器或PyCharm 問題跟蹤器)。
2.我應(yīng)該填寫initial
參數(shù)嗎?
這個(gè)參數(shù)可以不填。您可能永遠(yuǎn)不需要使用它(至少我沒有)并且a.max()
(a
您的數(shù)組在哪里)是計(jì)算最大值的常用方法,并且比a.max(initial=??)
.
但是您應(yīng)該注意,在某些情況下,沒有它就無法工作。像這樣的特別簡單的例子會(huì)引發(fā) ValueError:
import numpy as np np.empty(0).max() # or np.array([]).max()
但是可能會(huì)有更多這樣的隱藏案例(因?yàn)槟阌幸粋€(gè)空切片而引發(fā)相同的錯(cuò)誤):
np.array([1, 2, 3])[3:].max()

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
在一個(gè)Ipython會(huì)話中,numpy 1.18 np.max??(如charm點(diǎn)擊?)顯示:
def amax(a, axis=None, out=None, keepdims=np._NoValue,
initial=np._NoValue, where=np._NoValue):
.... docs
return _wrapreduction(a, np.maximum, 'max', axis, None, out,
keepdims=keepdims, initial=initial, where=where)
File: /usr/local/lib/python3.6/dist-packages/numpy/core/fromnumeric.py
所以initial給出了這個(gè)獨(dú)特的numpy常量._NoValue。實(shí)際動(dòng)作相當(dāng)于
np.maximum.reduce(a, ....)
initial在 1.15 版本中添加。 np.maximum.reduce??文檔提供了更多信息initial(通常適用于二進(jìn)制文件ufunc)。
添加回答
舉報(bào)