循环以将范围(0,10)归一化为(0,1)

时间:2018-09-26 10:45:03

标签: python normalization

我需要的是根据大于2的单个数字将0除以1。 像5一样,所以0到5会像这样

0.00  
0.25
0.50
0.75
1.00

列表中有5个值

我的另一个问题是如何获得这样的序列,其中中间数字是1,第一个和最后一个数字是0(如果数字是10)。

0.00
0.25
0.50
0.75
1.00
1.00
0.75
0.50
0.25
0.00

3 个答案:

答案 0 :(得分:5)

range(..)的上限是 排他 (表示它不是枚举),因此您需要添加< em>一步到range(..)函数:

for i in range(0,11):
     b = i*(1.0/10)
     print b

话虽如此,如果要创建这样的数组,可以使用numpy.arange(..)

>>> import numpy as np
>>> np.arange(0, 1.1, 0.1)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])

因此,您可以为offset,end和step参数指定浮点数。

关于第二个问题,可以一起itertools.chain迭代,例如:

from itertools import chain

for i in chain(range(0, 11), range(10, -1, -1)):
    print(i/10.0)

因此,我们有一个从range(..)迭代到0(包括两端)的一个 10,还有一个从10迭代的对象,到0(包括两端)。

答案 1 :(得分:2)

您应该使用range(0,11)来获取0到10之间的所有数字。

答案 2 :(得分:2)

0到10范围内的数字将为0到9。以下是一些实用的解释:

>>> list(range(0,10))  
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> list(range(0,11))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> 
>>> list(range(0,1))
[0]

>>>