map的使用
class map(func, *iterables)
传入参数X1
def sum(a):
return a+a
if __name__ == '__main__':
Ls1 = [1,2,4]
r = map(sum, Ls1)
print(tuple(r))
运行结果:
(2, 4, 8)
传入参数X1,X2
def sum(a,b):
return a+b
if __name__ == '__main__':
Ls1 = [1,2,4]
Ls2 = [1,2,3]
r = map(sum,Ls1,Ls2)
print(tuple(r))
运行结果:
(2, 4, 7)
注意
如果要传入2个list,Ls1,Ls2的长度必须相等 如果不相等,结果的长度是最短的list的长度。
要实现整数和数组的运算 使用numpy包
import numpy as np
def sum(a,b):
return a+b
if __name__ == '__main__':
L = np.array([1,2,3])
LL = sum(1,L)
print(LL)
运行结果:
[2 3 4]
np.vectorize()的使用,将函数向量化
import numpy as np
def myfun(a,b):
if a>b:
return a+b
else:
return a-b
if __name__ == '__main__':
vfunc = np.vectorize(myfun)
L = [1,2,3,4]
out = vfunc(L,2)
print(type(out))
print(out)
运行结果
<class ‘numpy.ndarray’>
[-1 0 5 6]