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的每个元素.