【问题标题】:Why can't I convert floats in an array into integers?为什么我不能将数组中的浮点数转换为整数?
【发布时间】:2017-12-14 10:09:03
【问题描述】:

我想将元素(浮点数)转换为整数,但它似乎不起作用。

#get an array from a matrix
pre_dataY = data[:, -1]
print(pre_dataY)
# float to integer
for i in range(len(pre_dataY):
    pre_dataY[i]=int(pre_dataY[i]) 
print(pre_dataY)

但是,输出是:

[ 3.  2.  9. ...,  7.  5.  5.]

[ 3.  2.  9. ...,  7.  5.  5.]

我不明白这是为什么?

【问题讨论】:

  • 你的缩进是否正确?
  • 你在使用numpy吗?
  • 是的,我导入 numpy
  • numpy 数组保留类型。请改用new_array=pre_dataY.astype(np.int)

标签: python numpy integer


【解决方案1】:

使用映射:

print map(int, pre_dataY)

映射使用您的值创建一个新列表

【讨论】:

  • 但是pre_dataY 是一个数组,大概OP希望它保持不变。如果它以列表的形式开始,则就地更改会起作用。
【解决方案2】:

您在循环中缺少一个右括号:

你有:

for i in range(len(pre_dataY):

应该是:

for i in range(len(pre_dataY)):

【讨论】:

  • 这个答案看起来不错,但可以使用更多细节和解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
相关资源
最近更新 更多