我有一个数组array([0.79836512, 0.79700273, 0.82697546, 0.82016349, 0.79087192], dtype=float32)
我希望保留前两个小数点而不是圆形。 所以,我需要一个这样的数组,
array([0.79, 0.79, 0.82, 0.82, 0.79], dtype=float32)
。
是否可以使用python
执行此操作?
由于
答案 0 :(得分:0)
截断为两位小数的标准方法是截断x * 100
并将其除以100,这适用于numpy数组:
>>> np.trunc(a * 100) / 100
array([ 0.79000002, 0.79000002, 0.81999999, 0.81999999, 0.79000002], dtype=float32)
不要被输出中的尾随非零数字拖延,这些只是浮点不精确的伪像:
>>> np.float32(.79)
0.79000002
答案 1 :(得分:0)
您可以编写一个函数,以后再使用它:
import numpy as np
x= np.random.random(5)
x=np.array(x, dtype=np.float16)
print(x)
formatting = lambda x: "%.2f" %x
x_2dp=[]
for i in x:
x_2dp.append(formatting(i))
print(x_2dp)
但是答案是一个字符串,您可以将其转换为浮点数。