我的值当前在数组中显示为1.00+e09
(类型为float64)。我希望他们改为显示1000000000
。这可能吗?
答案 0 :(得分:1)
制作样本数组
In [206]: x=np.array([1e9, 2e10, 1e6])
In [207]: x
Out[207]: array([ 1.00000000e+09, 2.00000000e+10, 1.00000000e+06])
我们可以转换为整数 - 除了通知最大的一个太大了默认的int32
In [208]: x.astype(int)
Out[208]: array([ 1000000000, -2147483648, 1000000])
In [212]: x.astype(np.int64)
Out[212]: array([ 1000000000, 20000000000, 1000000], dtype=int64)
使用默认格式(float)编写csv(无论数组dtype如何,这都是默认格式):
In [213]: np.savetxt('text.txt',x)
In [214]: cat text.txt
1.000000000000000000e+09
2.000000000000000000e+10
1.000000000000000000e+06
我们可以指定格式:
In [215]: np.savetxt('text.txt',x, fmt='%d')
In [216]: cat text.txt
1000000000
20000000000
1000000
可能存在3个问题:
dtype
答案 1 :(得分:0)
这是打印选项,请参阅文档:printing options。简要说明:打印时需要使用suppress选项:
np.set_printoptions(suppress=True) # for small floating point.
np.set_printoptions(suppress=True, formatter={'all':lambda x: str(x)})