浮点数组未转换为整数:Python
Float Array is not converted to int: Python
我有一个 float 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必须在某些进程中使用,而且必须是整数,当我想在那个进程中使用它时,提示它必须是整数或布尔类型。谁能告诉我我犯了什么错误?
谢谢。
Numpy 专为数组操作而设计。尽量不要像您那样遍历 numpy 数组。您可以阅读有关 numpy 数据类型与内置数据类型有何不同的信息。这导致更高的 运行 倍。
总之,这是解决您的问题的有效代码
newx=x*2+1
newx=numpy.int16(newx) # as easy as this. ;)
我有一个 float 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必须在某些进程中使用,而且必须是整数,当我想在那个进程中使用它时,提示它必须是整数或布尔类型。谁能告诉我我犯了什么错误?
谢谢。
Numpy 专为数组操作而设计。尽量不要像您那样遍历 numpy 数组。您可以阅读有关 numpy 数据类型与内置数据类型有何不同的信息。这导致更高的 运行 倍。
总之,这是解决您的问题的有效代码
newx=x*2+1
newx=numpy.int16(newx) # as easy as this. ;)