簡體   English   中英

python中的求和函數

[英]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 numpyimport numpy as np ,並將dot稱為np.dot()numpy.dot()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM