python中的sum函数

Jey*_*Jey 0 python numpy matrix addition

我有一个矩阵列表如下:

myarrlist = [array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), array([[10, 20, 30],40, 50, 60],[70, 80, 90]])]
Run Code Online (Sandbox Code Playgroud)

和,

sum(myarrlist)/float(len(myarrlist))
Run Code Online (Sandbox Code Playgroud)

给了我以下结果(这就是我要求的:矩阵加法的结果是一个矩阵)

array([[  5.5,  11. ,  16.5],[ 22. ,  27.5,  33. ],[ 38.5,  44. ,  49.5]])
Run Code Online (Sandbox Code Playgroud)

但是,当我给予

from numpy import *
Run Code Online (Sandbox Code Playgroud)

对于使用dot()函数进行矩阵乘法,sum()函数不再给出矩阵作为结果,而是给出单个值(添加所有元素).我是python的新手,我猜numpy的sum()会覆盖对python内置sum()的调用.

我试图在没有循环的列表中添加矩阵,并找到适合它的内置sum().是否可以使用python sum()并仍然使用numpy的其他功能?

Bra*_*ell 5

当你这样做

from SomeModule import *
Run Code Online (Sandbox Code Playgroud)

你确实凌驾于内置和函数.这会将numpy命名空间中的所有内容导入默认命名空间.您可能想要做的是:

import numpy as np
Run Code Online (Sandbox Code Playgroud)

然后,您可以将numpy点函数作为np.dot访问.通过这种方式,如果它们定义了相同名称的函数,则可以使命名空间不会相互踩踏.

另一个选择,如果你只想要点功能就是这样做:

from numpy import dot
Run Code Online (Sandbox Code Playgroud)

然后点函数是numpy唯一可用的函数.这是使用其他模块时采用的两种主要方法.导入*通常不受欢迎,因为永远不知道不同的模块是否会相互踩踏或覆盖内置函数.