首页 > 解决方案 > 将对象数组中的元素从 int 转换为 float python numpy

问题描述

请参阅下面的代码,我有 array y,它是一个numpy对象数组。

我试图只转换[15, 7, 9, 10, 7, 8, 20, 16, 9]为这样的浮点数:[15.0, 7.0, 9.0, 10.0, 7.0, 8.0, 20.0, 16.0, 9.0].

我怎么能用 numpy 或 panda 做到这一点?

df = pd.read_csv('./body.csv')
data = df.values

cols = range(0, 8) 
X = data[:, cols]
N, M = X.shape

classLab = data[:,-1]
y = classLab

任何帮助表示赞赏,谢谢!

标签: pythondataframenumpy

解决方案


如果使用pandas.read_csv(),那么您可以在阅读时确保类型:

df = pd.read_csv('myfile.csv', dtype={'mycolumn': float})

或者,您可以在阅读后进行:

df['mycolumn'] = df['mycolumn'].astype(float)

在任何一种情况下,整个列(存储为 numpy 数组)都将转换为选择的类型。你不能只有几个元素 asfloat而其他元素 as int

如果处理多列的 numpy 数组也是如此:

X = data.loc[:, 0:8].astype(float)

推荐阅读