python - 将对象数组中的元素从 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
任何帮助表示赞赏,谢谢!
解决方案
如果使用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)
推荐阅读
- sql-server - PowerBI Report Builder 与 AWS Redshift 的集成
- c++ - 索引 2^21 处的执行时间开销
- kubernetes - 如何通过api或其他交互连接kubernetes pods(终端)?
- php - php 在嵌套数组中使用 array_slice
- c# - Fluent Nhibernate 在连接到 Oracle 数据库时抛出错误
- excel - Excel 找不到数据
- azure - Azure 数据工厂 - 如何从 azure 函数返回 JSON 作为参数并将其传递给 Databricks 服务?
- java - Java 8 在 HTTPS 请求中找不到受信任的证书
- c++ - 在 C++ 中为自身添加一个数字
- javascript - 使用自动完成时不触发 onchange - 可能吗?