Python Numpy函数在两个Ndarray上运行
给定两个nArrayPython Numpy函数在两个Ndarray上运行,python,numpy,Python,Numpy,给定两个nArraya=np.asarray([[0,1,2],[3,4,5]])和b=np.asarray([[6,7,8],[9,10,11]])我想写一个迭代a和b的函数,这样 考虑[0,1,2]和[6,7,8] 考虑[3,4,5]和[9,10,11] 例如,函数n [0,1,2]和[6,7,8]作为输入,并输出0*6+1*7+2*8=23 [3,4,5]和[9,10,11]作为输入和输出3*9+4*10+5*11=122 ->(23122) 在numpy有什么方法可以有效地做到这一点吗?
a=np.asarray([[0,1,2],[3,4,5]])
和b=np.asarray([[6,7,8],[9,10,11]])
我想写一个迭代a和b的函数,这样
myfunc(x,y)
。在前面的示例中,myfunc(x,y)
对应于多重通信
c = a * b
sum1 = c[0].sum()
sum2 = c[1].sum()
如果需要算法方式(自定义函数)
如果需要算法方式(自定义函数)
将numpy作为np导入 a=np.asarray([[0,1,2],[3,4,5]) b=np.asarray([[6,7,8],[9,10,11]) c=a*b 打印(总和(c[0]),总和(c)) ans->23122
将numpy作为np导入 a=np.asarray([[0,1,2],[3,4,5]) b=np.asarray([[6,7,8],[9,10,11]) c=a*b 打印(总和(c[0]),总和(c))
ans->23122不需要同时使用zip和数组,您需要了解numpy软件包,以帮助您更好地使用矩阵。所以你需要关于矩阵的基本知识,我建议你从这个链接学习,斯坦福大学的cs231n。 这是一个可以解决您的问题的函数:
import numpy as np
def interates(matrix_a, matrix_b):
product = matrix_a*matrix_b
return (np.sum(product,1))
值积包含一个新矩阵,其形状与矩阵a和矩阵b相同,其中的每个元素都是矩阵a[i][j]*矩阵b[i][j]
的结果,其中i和j从0运行到矩阵a.shape[0]
和矩阵a.shape[1]
现在用你的例子检查一下
a = np.asarray([[0,1,2],[3,4,5]])
b = np.asarray([[6,7,8],[9,10,11]])
result = interates(a,b)
打印结果
>> print(result)
>> [23 122]
如果你想要一个元组
>> result = tuple(result)
>> print(result)
>> (23, 122)
不需要同时使用zip和数组,您需要了解numpy包,以帮助您更好地使用矩阵。所以你需要关于矩阵的基本知识,我建议你从这个链接学习,斯坦福大学的cs231n。 这是一个可以解决您的问题的函数:
import numpy as np
def interates(matrix_a, matrix_b):
product = matrix_a*matrix_b
return (np.sum(product,1))
值积包含一个新矩阵,其形状与矩阵a和矩阵b相同,其中的每个元素都是矩阵a[i][j]*矩阵b[i][j]
的结果,其中i和j从0运行到矩阵a.shape[0]
和矩阵a.shape[1]
现在用你的例子检查一下
a = np.asarray([[0,1,2],[3,4,5]])
b = np.asarray([[6,7,8],[9,10,11]])
result = interates(a,b)
打印结果
>> print(result)
>> [23 122]
如果你想要一个元组
>> result = tuple(result)
>> print(result)
>> (23, 122)
做哈达玛积,然后沿轴求和=1:np.sum(a*b,轴=1)做哈达玛积,然后沿轴求和=1:np.sum(a*b,轴=1)