python - 将列表转换为数组后创建列
问题描述
我的问题是如何将前四列转换为浮点数,将最后一列转换为字符串?更重要的是我不能使用 Pandas 或 CSV,我只能使用 numpy。我该怎么办?我已将列表转换为数组,目前显示:
'5.0,3.0,1.6,0.2,鸢尾花'
我还需要添加正确的列标题,任何输入都将不胜感激。谢谢!
import numpy as np
training_data = open("C:\Users\Angel\Downloads\iris-training-data.csv")
training_data_list = []
for elements in training_data:
training_data_list.append(elements)
training_data_array = np.array(training_data_list)
print "The shape is {}\n".format(training_data_array.shape)
print "The visual array is: {}".format(training_data_array)
解决方案
我想这就是你要找的
import csv
with open('path_to_csv', newline='') as file:
data = csv.reader(file, delimiter=' ')
for row in data:
row = row[0].split(',')
r = [float(item) for item in row[:4]]
r.append(str(row[4]))
print(r)
这是我的输出,但我运行了 9 列而不是你的 5 列。但它是相同的数据集。我发布的代码对你有用。
[7.2, 0.805555556, 3.0, 0.416666667, 5.8, 0.813559322, 1.6, 0.625, 'virginica']
[7.4, 0.861111111, 2.8, 0.333333333, 6.1, 0.86440678, 1.9, 0.75, 'virginica']
[7.9, 0.9999, 3.8, 0.75, 6.4, 0.915254237, 2.0, 0.791666667, 'virginica']
[6.4, 0.583333333, 2.8, 0.333333333, 5.6, 0.779661017, 2.2, 0.875, 'virginica']
[6.3, 0.555555556, 2.8, 0.333333333, 5.1, 0.694915254, 1.5, 0.583333333, 'virginica']
推荐阅读
- angular - 在角度 2 中注册激活链接
- python-3.x - pip3 坏了,不再安装包
- python-3.x - DataFrame.Apply() 忽略第一列
- c++ - 为什么不允许使用变长数组作为向量元素?
- flutter - 无法定位开发设备;请运行“颤振医生”以获取有关安装附加组件的信息
- typescript - AG-Grid:根据条件在网格中显示某些“动作”按钮
- docker - mkdir 命令与 dockerfile 的操作
- mysql - 如何在 DataGridView 的标题单元格中添加复选框
- html - 角度标准属性的 Html 变量
- git - 没有工作树的存储库上的 Git 操作?