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的其他功能?
当你这样做
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唯一可用的函数.这是使用其他模块时采用的两种主要方法.导入*通常不受欢迎,因为永远不知道不同的模块是否会相互踩踏或覆盖内置函数.