【发布时间】:2019-09-14 00:32:23
【问题描述】:
给定两个 ndarrays 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]
一个例子是一个函数,它需要
- [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
-> (23,122)
有没有办法在 numpy 中有效地做到这一点? 我的想法是压缩两个数组,但是效率不高。
编辑:我正在寻找一种方法来应用可自定义的函数myfunc(x,y)。在前面的例子中,myfunc(x,y) 对应于乘法。
【问题讨论】:
-
做 hadamard 产品然后沿axis=1求和:np.sum(a*b,axis=1)