【发布时间】:2016-05-10 23:08:37
【问题描述】:
我正在填充一个数组,从文件中读取数据:
输入:
2
4
-8
5
-2
代码:
f = [ i.strip() for i in open('file.txt', 'r') ]
a = []
for line in f:
line = line.split()
a.append(float(line[0]))
产生向量a=[2,4,-8,5,-2]。现在我想用它们的值 +10 替换所有负值,以获得向量b=[2,4,2,5,8]。如果不使用循环或for 循环,我该怎么做?我尝试使用np.where() 函数和a[a<0],但它们不会产生任何结果(如果我创建一个np.array[2,4,-8,5,-2] ex novo...,它们就可以工作)。提前谢谢你。
【问题讨论】:
-
为什么不在
i.strip() for...循环中这样做? -
不管你选择使用什么功能,毕竟会有一个循环。
-
-11 会变成什么? -1 或再次加 10 得到 +9?
标签: python arrays replace where