Numpy浮点范围和Lambda表达式

时间:2019-03-26 00:00:11

标签: python python-3.x numpy lambda

enter image description here

"""
B.
"""
import numpy

print(list(map(lambda x: x*x, numpy.arange(0, 1, 0.1))))
>> [0.0, 0.010000000000000002, 0.04000000000000001, 0.09000000000000002, 0.16000000000000003, 0.25, 0.3600000000000001, 0.4900000000000001, 0.6400000000000001, 0.81]


"""
C.
"""
from functools import reduce

print(reduce(lambda x, y: x + y, list(map(lambda x: x*x, numpy.arange(0, 1, 0.1)))))
>> 2.8500000000000005

我读错了吗?还是我可以假设问题B无法编码? 如果范围是从0到1,并且“增量”减小,则循环永远不会结束?

如果可能的话,有人可以帮助解决答案吗?我不确定x -> x^2 lambda表达式是否正确

1 个答案:

答案 0 :(得分:0)

考虑问题c:

  

减少先前映射的结果 s

我认为这意味着您应针对每种情况,以不同的增量多次绘制整个映射:

类似的东西:

for i in range(10):
    print(list(map(lambda x: x*x, numpy.arange(0, 1, 0.1**i))))

然后,对于每个结果,都应显示总和:

for i in range(10):
    m = list(map(lambda x: x*x, numpy.arange(0, 1, 0.1**i)))
    print(reduce(lambda x, y: x + y, m))