我怎样才能编写一个代码来格式化
[a,b,c]
值,并将负值变为零。映射lambda函数
formater
按预期工作,但我在for循环中重写数组。下面的代码不起作用。如何获得预期的输出?
import numpy as np
a = np.array([2323,34,12,-23,12,4,-33,-2,-1,11,-2])
b = np.array([12,-23-1,-1,-3,-12])
c = np.array([23,45,3,13,-1992,5])
format_number = lambda n: n if n % 1 else int(n)
for count,formater in enumerate([a, b, c]):
formater = list(map(lambda n: 0 if n < 0 else format_number(n), formater))
formater[count]= formater
输出:
[2323 34 12 -23 12 4 -33 -2 -1 11 -2]
[ 12 -24 -1 -3 -12]
[ 23 45 3 13 -1992 5]
预期产出:
[2323, 34, 12, 0, 12, 4, 0, 0, 0, 11, 0]
[12, 0, 0, 0, 0]
[23, 45, 3, 13, 0, 5]