[英]Python function "sum" with syntax like: sum() -> 0 sum(1)(2)(3) -> 6
[英]sum function in python
我有一個矩陣列表,如下所示:
myarrlist = [array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), array([[10, 20, 30],40, 50, 60],[70, 80, 90]])]
和,
sum(myarrlist)/float(len(myarrlist))
給了我以下結果(這是我所需要的:矩陣加法的結果是一個矩陣)
array([[ 5.5, 11. , 16.5],[ 22. , 27.5, 33. ],[ 38.5, 44. , 49.5]])
但是,當我給
from numpy import *
對於將dot()函數用於矩陣乘法,sum()函數不再將矩陣作為結果,而是單個值(添加所有元素)。 我是python的新手,我猜想numpy中的sum()會覆蓋對python內置sum()的調用。
我試圖在列表中添加沒有循環的矩陣,並找到適用於此的內置sum()。 是否可以使用python sum()並仍然使用numpy的其他功能?
當你做
from SomeModule import *
您確實覆蓋了內置求和函數。 這會將所有內容從numpy的命名空間導入到默認命名空間。 您可能想做的是:
import numpy as np
然后,您可以將numpy點函數作為np.dot訪問。 通過這種方式,如果命名空間定義了相同名稱的功能,則可以防止它們相互踩踏。
如果您只想使用點功能,則另一種方法是:
from numpy import dot
然后,點函數是numpy中唯一可用的函數。 這是使用其他模塊時采用的兩種主要方法。 導入*通常是令人討厭的,因為永遠不知道不同的模塊會相互腳還是會覆蓋內置函數。
就是這樣。 避免名稱空間沖突的一種方法是僅導入所需的內容:例如, from numpy import dot
。 另一種方法是import numpy
或import numpy as np
,並將dot
稱為np.dot()
或numpy.dot()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.