将 numpy 数组值转换为整数

Stu*_*001 6 python numpy

我的值当前显示为1.00+e09数组(类型 float64)。我希望他们能展示1000000000出来。这可能吗?

hpa*_*ulj 12

制作一个样本数组

In [206]: x=np.array([1e9, 2e10, 1e6])
In [207]: x
Out[207]: array([  1.00000000e+09,   2.00000000e+10,   1.00000000e+06])
Run Code Online (Sandbox Code Playgroud)

我们可以转换为整数 - 除非注意最大的一个太大了默认的 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)
Run Code Online (Sandbox Code Playgroud)

使用默认格式(浮点)写入 csv(无论数组数据类型如何,这都是默认格式):

In [213]: np.savetxt('text.txt',x)
In [214]: cat text.txt
1.000000000000000000e+09
2.000000000000000000e+10
1.000000000000000000e+06
Run Code Online (Sandbox Code Playgroud)

我们可以指定一种格式:

In [215]: np.savetxt('text.txt',x, fmt='%d')
In [216]: cat text.txt
1000000000
20000000000
1000000
Run Code Online (Sandbox Code Playgroud)

可能存在3个问题:

  • 整数 v float 在数组本身中,它是dtype
  • 显示或打印数组
  • 将数组写入 csv 文件