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

Aks*_*ava 3 python normalization

我需要的是根据大于2的单个数字将0/1除以/扩展为0,所以0到5将被分割为这样

0.00  
0.25
0.50
0.75
1.00
Run Code Online (Sandbox Code Playgroud)

列表中的5个值

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

0.00
0.25
0.50
0.75
1.00
1.00
0.75
0.50
0.25
0.00
Run Code Online (Sandbox Code Playgroud)

Wil*_*sem 5

它的上限range(..)独占的(意思是它没有枚举),所以你需要向函数添加一个步骤range(..):

for i in range(0,11):
     b = i*(1.0/10)
     print b
Run Code Online (Sandbox Code Playgroud)

话虽这么说,如果你想创建这样的数组,你可以使用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. ])
Run Code Online (Sandbox Code Playgroud)

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

至于你的第二个问题,你可以itertools.chain一起迭代,比如:

from itertools import chain

for i in chain(range(0, 11), range(10, -1, -1)):
    print(i/10.0)
Run Code Online (Sandbox Code Playgroud)

因此,我们有一个 range(..)迭代010(包括),一个迭代10,0(包括).