Py学习  »  Python

用Numpy Python编写数组

georgehere • 3 年前 • 1171 次点击  

我怎样才能编写一个代码来格式化 [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]
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129825
 
1171 次点击  
文章 [ 2 ]  |  最新文章 3 年前