在python中使用map

fac*_*est 3 python functional-programming numpy map

我正在试图找出在python中正确使用map的方法,以便我可以通过Pool.map对我的程序进行多线程处理.基本上我遇到了试图理解python功能如何工作的问题.我有:

import numpy as np

def maptest(foo,bars):
   print foo * bars

main():
   matA = np.eye(2)
   matB = np.eye(2)

   print map((lambda foo: maptest(foo, matB)), matA) 
Run Code Online (Sandbox Code Playgroud)

这给了我一个输出:

[[ 1.  0.]
 [ 0.  0.]]
[[ 0.  0.]
 [ 0.  1.]]
[None, None]
Run Code Online (Sandbox Code Playgroud)

当我想要的输出只是:

[[1. 0.]
 [0. 1.]]
Run Code Online (Sandbox Code Playgroud)

我能用地图电话怎么回事?这是我第一次使用map和lambda.我用lambdify和sympy,但这都是为了我的职业经历.谢谢!

小智 5

[无,无]来自打印地图调用(请注意,您的maptest函数会打印!).

现在,它打印这些多个数组的原因是您将函数映射到所有mapA.mapA实际上是一个双元素数组,map将您的函数应用于数组的每个元素.因此,您打印[1,0] [[1,0] [0,1]],然后打印[0,1] [[1,0] [0,1]].您没有乘以矩阵,而是进行了两次乘法运算,每次乘法都是mapA的每个元素.