help(np.sum)
顯示該函數的調用簽名:
In [72]: help(np.sum)
sum(a, axis=None, dtype=None, out=None, keepdims=False)
Sum of array elements over a given axis.
當你調用np.sum(1, 2)
,np.sum
接收兩個positional arguments,1和2. a
必然是第一個位置al參數1和axis
被綁定到第二個位置參數2。 這會產生ValueError: 'axis' entry is out of bounds
,因爲數組標量 np.array(1)
沒有2軸。
當調用np.sum(1, 2, axis=0)
然後a
綁定到1,並axis
分配兩次,首先由位置參數2,並且還通過關鍵字參數axis=0
。 這會導致Python提高TypeError: sum() got multiple values for argument 'axis'
。
當一個函數接受的參數的任意數量,函數簽名是這樣寫:
func(x1 [, x2 [...]])
參見例如zip
的函數簽名:
In [84]: help(zip)
zip(...)
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
或簡單的橢圓是使用:
In [83]: help(min)
min(...)
min(iterable[, key=func]) -> value
min(a, b, c, ...[, key=func]) -> value
作爲juanchopanza shows,雙方1和2傳給a
,你可以使用
In [76]: np.sum([1,2])
Out[76]: 3
因爲[1,2]
是一個對象 - 包含在細節1個2
魔名單。謝謝!不勝感激 – ATD