指定された範囲内で、均等に間隔を空けた数字 (整数だけではない) を含む任意の長さのリストを作成する Python の方法は何ですか? たとえば、次のようになります。
my_func(0,5,10) # ( lower_bound , upper_bound , length )
# [ 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5 ]
このRange()
関数は整数のみを扱うことに注意してください。そしてこれ:
def my_func(low,up,leng):
list = []
step = (up - low) / float(leng)
for i in range(leng):
list.append(low)
low = low + step
return list
複雑すぎるようです。何かアイデアはありますか?
ベストアンサー1
numpyを使えば、リンスペース:
右端点を含める(5):
In [46]: import numpy as np
In [47]: np.linspace(0,5,10)
Out[47]:
array([ 0. , 0.55555556, 1.11111111, 1.66666667, 2.22222222,
2.77777778, 3.33333333, 3.88888889, 4.44444444, 5. ])
右のエンドポイントを除外する:
In [48]: np.linspace(0,5,10,endpoint=False)
Out[48]: array([ 0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])