夢に向かって、好奇心を持ち、疑問を持ち続ける。それが努力。

博士課程に在学するロボット好き学生のブログです。

知らなかったpythonのrandint

pythonで,ある値の範囲からランダムに数字(ここではint型の数字)を選択するときrandint関数を使うが,どうやら値の範囲がnumpyを使う場合とpython標準のrandom関数を使う場合とで違うらしい.

aからbまでを範囲とするとき.

random.randintの場合は,[a,b]のようにbが含まれるが,
numpy.random.randintの場合は,[a,b)のように,bは含まれない.

違いはこの通り.

>>> import numpy as np
>>> import random
>>> a=0
>>> b=3
>>> i=10

>>> # random関数を使ったとき
>>> while i > 0:
...     print random.randint(a,b)
...     i = i -1
... 
3
2
3
0
3
2
0
0
2
2
>>> # numpyのrandom関数を使ったとき
>>> i=10
>>> while i > 0:
...     print np.random.randint(a,b)
...     i = i -1
... 
0
0
0
2
2
1
1
2
2
2
>>> 

複数の言語を使う場合には,同じ名前でも同様のことができる関数と思わないようにとは思っていたけど,
同一言語でも,まさか異なるポリシーの関数があったとは!

やっぱりライブラリの関数を使う場合には,確認が必要ですね:)