Python Numpy函数在两个Ndarray上运行

Python 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有什么方法可以有效地做到这一点吗?

给定两个nArray
a=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有什么方法可以有效地做到这一点吗? 我的想法是压缩这两个阵列,但是,这并不高效

    编辑:我正在寻找一种应用可自定义函数的方法
    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)