Numpy配列内のfloat値を切り捨てたいです。
2.34341232 --> 2.34
私は投稿 浮動小数点の切り捨て を読みましたが、1つの浮動小数点数についてです。 numpy配列でループを実行したくないので、かなり高価になります。これを簡単に行うことができるnumpy内の組み込みメソッドはありますか?文字列ではなく浮動小数点数として出力する必要があります。
使用する - numpy.round
:
import numpy as np
a = np.arange(4) ** np.pi
a
=> array([ 0. , 1. , 8.82497783, 31.5442807 ])
a.round(decimals=2)
=> array([ 0. , 1. , 8.82, 31.54])
numpy.trunc() のこの修正版を試してください。
import numpy as np
def trunc(values, decs=0):
return np.trunc(values*10**decs)/(10**decs)
悲しいことに、numpy.trunc
関数は、10進数の切り捨てを許可しません。幸いなことに、引数を掛けてその結果を10の累乗で割ると、期待される結果が得られます。
vec = np.array([-4.79, -0.38, -0.001, 0.011, 0.4444, 2.34341232, 6.999])
trunc(vec, decs=2)
これは次を返します:
>>> array([-4.79, -0.38, -0. , 0.01, 0.44, 2.34, 6.99])