はじめに
for文を使って小数点を繰り返したい時ってたまにありますよね。今回はそれを実現する方法を書いていきます。0~1を0.1刻みで繰り返す想定です。
rangeを使う方法
rangeを使ってまず0~10の整数を発生させて、10で割る作業。
for i in range(0, 10, 1):
print(i/10)
'''出力
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
'''
numpyを使う方法
まずnp.arange
で小数点の繰り返しを発生させて、桁数で丸め込める作業。
import numpy as np
data = np.arange(0.0, 1.0, 0.1)
data = np.round(data, 1)
for i in data:
print(i)
'''出力
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
'''
失敗例
range
rangeでそのまま小数点指定すればいんじゃねー?
for i in range(0, 1, 0.1):
print(i)
'''出力
Traceback (most recent call last):
File "false.py", line 1, in <module>
for i in range(0, 1, 0.1):
TypeError: 'float' object cannot be interpreted as an integer
'''
「小数点で指定するな、整数で指定しろ。」
すいません。。。
np.arange
np.arange
で小数点作ればそれだけでいんじゃねー?
import numpy as np
data = np.arange(0.0, 1.0, 0.1)
for i in data:
print(i)
'''出力
0.0
0.1
0.2
0.30000000000000004
0.4
0.5
0.6000000000000001
0.7000000000000001
0.8
0.9
'''
なんかうまくいかない。。。しゃーなし丸めこむか。。。