Pythonの余りと商
Pythonのあまりと商を求める演算子と関数
Pythonには、割り算のあまりと商を同時に求めるdivmod関数があります。
$ cat divmod.py #!/usr/bin/python3 # // は商を求める %はあまりを求める演算子 q = 10 // 3 r = 10 % 3 print( "10割る3 = %d あまり %d" % (q,r) ) q,r = divmod(10,3) print( "divmodで計算" ) print( "10割る3 = %d あまり %d" % (q,r) )
実行するとこうなります。
$ ./divmod.py 10割る3 = 3 あまり 1 divmodで計算 10割る3 = 3 あまり 1
Pythonのnumpyリストのあまりを求める関数
numpyのリストの要素全部に対して、指定した数で割ったあまりを求めるのがnumpy.modという関数。
以下は、1~20の値を代入したリストにたいして、5で割ったあまりを別のリストとして作成します。
$ cat numpymod.py #!/usr/bin/python3 import numpy as np # 1~20のリストを生成 list = np.array([x for x in range(1,21)]) print ( list ) # リストの数値を5で割ったあまりを新しいリストとして作成 modlist=np.mod(list,5) print( modlist )
numpyのリストはfor文を使った内包表記で生成しています。
関連 Pythonのlist
実行するとこうなります。
$ ./numpymod.py [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20] [1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0]
Pythonのあまりのまとめ
- Pythonのあまりを求める演算子は「%」
- divmod()関数で、商とあまりを同時に求めることが可能
- numpy arrayに対して、numpy.mod()関数で、全要素に対して指定した値で割ったあまりを算出できる