Float Array未转换为int:Python

时间:2015-06-29 08:47:26

标签: python arrays numpy floating-point integer

我有一个浮动numpy数组x,其中包含0,.5,1,1.5等值。我想根据某些方程将浮点值转换为整数,并将它们存储在一个新数组newx中。我这样做了,

newx=np.zeros(x.shape[0])
    for i in range (x.shape [0]):
        newx[i]=  ((2*x[i]) +1)
    print(newx, v)

但是,在打印xnew时,我会得到像

这样的值
(array([   1.,    2.,    3.,    4.,    5.,    6.,    7.,    8.,    9.,
         10.,   11.,   12.,   13.,   14.,   15.,   16.,   17.,   18.])

newx必须在某个进程中使用,并且必须是整数,当我想在该进程中使用它时,我得到一个错误,指出它必须是整数或布尔类型。谁能告诉我我做错了什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

Numpy专为数组操作而设计。尽量不像你那样迭代一个numpy数组。您可以阅读有关numpy数据类型与内置数据类型有何不同的信息。这导致更高的运行时间。

无论如何这是你的问题的工作代码

newx=x*2+1
newx=numpy.int16(newx)      # as easy as this. ;)