Python入門トップページ


目次

  1. NumPy とは
  2. Python リストの場合
  3. NumPy の使用例
    1. 1次元配列(ベクトル)
    2. 2次元配列(行列)
    3. 要素の取り出し
    4. ベクトルと行列の変換
    5. NumPy のデータ型
    6. NumPy 配列の作成と操作
    7. ユニバーサル関数と集約関数
    8. NumPy 配列のソート
    9. NumPy の構造化配列
    10. NumPy 配列の保存と読み込み
    11. 表示オプションの変更
  4. NumPy で線形代数
  5. NumPy の乱数生成

NumPy

NumPy の使用例

表示オプションの変更

小数点以下の表示桁数を変更する

再び三角関数の値を表示します.すると,小数点以下は8桁まで表示されていることがわかります.


import numpy as np

x = np.array([0, np.pi/3, np.pi/2, 2*np.pi/3, np.pi])
print(x)
print(np.sin(x))
print(np.cos(x))
print(np.tan(x))
[0.         1.04719755 1.57079633 2.0943951  3.14159265]
[0.00000000e+00 8.66025404e-01 1.00000000e+00 8.66025404e-01
 1.22464680e-16]
[ 1.000000e+00  5.000000e-01  6.123234e-17 -5.000000e-01 -1.000000e+00]
[ 0.00000000e+00  1.73205081e+00  1.63312394e+16 -1.73205081e+00
 -1.22464680e-16]

NumPy では np.get_printoptions() で表示オプションの設定を確認することができます.その結果,'precision': 8 という設定を確認することができました.


print(np.get_printoptions())
{'edgeitems': 3, 'threshold': 1000, 'floatmode': 'maxprec', 'precision': 8, 'suppress': False, 'linewidth': 75, 'nanstr': 'nan', 'infstr': 'inf', 'sign': '-', 'formatter': None, 'legacy': False}

この設定を set_printoptions() によって3に変更することで,小数点以下の表示桁数を3桁に設定できます.


np.set_printoptions(precision=3)
print(x)
print(np.sin(x))
print(np.cos(x))
print(np.tan(x))
[0.    1.047 1.571 2.094 3.142]
[0.000e+00 8.660e-01 1.000e+00 8.660e-01 1.225e-16]
[ 1.000e+00  5.000e-01  6.123e-17 -5.000e-01 -1.000e+00]
[ 0.000e+00  1.732e+00  1.633e+16 -1.732e+00 -1.225e-16]

目次に戻る

小数点以下をゼロ埋めする

次に,小数点以下をゼロで埋めるように設定します.このためには,floatmode='fixed' を指定するとよいでしょう.


np.set_printoptions(floatmode='fixed')
print(x)
print(np.sin(x))
print(np.cos(x))
print(np.tan(x))
[0.000 1.047 1.571 2.094 3.142]
[0.000e+00 8.660e-01 1.000e+00 8.660e-01 1.225e-16]
[ 1.000e+00  5.000e-01  6.123e-17 -5.000e-01 -1.000e+00]
[ 0.000e+00  1.732e+00  1.633e+16 -1.732e+00 -1.225e-16]

目次に戻る

指数表示を無効にする

次は,指数表示を極力利用せず,例えば 1.225e-16 のようなゼロに近い数字が 0.000 と表示されるようにします.ただし,1.633e+16 のような非常に桁の大きな値がある場合には指数表示のままになるようです.


np.set_printoptions(suppress=True)
print(x)
print(np.sin(x))
print(np.cos(x))
print(np.tan(x))
[0.000 1.047 1.571 2.094 3.142]
[0.000 0.866 1.000 0.866 0.000]
[ 1.000  0.500  0.000 -0.500 -1.000]
[ 0.000e+00  1.732e+00  1.633e+16 -1.732e+00 -1.225e-16]

目次に戻る

配列の最大表示個数を変更する

最後に配列を表示します.NumPy 配列は最大1000個までは途中を省略せずに表示されます.


z = np.arange(20)
print(z)
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]

例えば,最大15個までは省略せずに表示して,16個以上では途中を省略するように設定を変更します.20個の配列は途中が省略されました.


np.set_printoptions(threshold=15)
print(z)
[ 0  1  2 ... 17 18 19]

15個の配列では省略されずにすべてが表示されました.


z = np.arange(15)
print(z)
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]

16個になれば途中が省略されることも確認できました.


z = np.arange(16)
print(z)
[ 0  1  2 ... 13 14 15]

このページでいくつかの設定を変更したので,その結果を確認しておきます.最初の結果と見比べてください.


print(np.get_printoptions())
{'edgeitems': 3, 'threshold': 15, 'floatmode': 'fixed', 'precision': 3, 'suppress': True, 'linewidth': 75, 'nanstr': 'nan', 'infstr': 'inf', 'sign': '-', 'formatter': None, 'legacy': False}

目次に戻る