[英]Subtracting a number for each element in a column
我有一个csv文件,可以在其中访问列之一。 例如,我有:
A
2.5
3.5
4.5
5.5
等等
我想要做的是将A中的所有条目都减去1.0,以使其变为:
B
1.5
2.5
3.5
4.5
关于如何做到的任何想法? 我尝试了numpy.subtract(),但这只会导致错误。
如果您有一个numpy数组,则可以从数组中减去一个常量,例如:
>>> A = numpy.array([2.5, 3.5, 4.5, 5.5])
>>> A-1
array([ 1.5, 2.5, 3.5, 4.5])
编辑:这就是广播,顺便说一句http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
最简单的方法是使用减量/增量运算符
A -= 1
这适用于整个数组。 如果您可以使用numpy数组及其强大的广播功能执行操作,则循环只会减慢速度。 但是请注意,许多numpy例程不适用于列表,因为它们没有将其转换为数组。 这可能是numpy.substract()无法正常工作的原因。
您可以使用apply named map
函数在列表中“映射”一个函数:
>>> A = [2.5, 3.5, 4.5, 5.5]
>>> B = map(lambda x: x-1., A)
>>> B
[1.5, 2.5, 3.5, 4.5]
>>>
其中lambda x: x-1
是将A
所有元素都应用到的匿名函数。 对于2.5
该函数返回2.5-1
;对于3.5
该函数返回3.5-1
,依此类推。
如果要就地执行此操作,则需要一个for循环:
for i in range(len(column)):
column[i] = column[i] - 1.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.