机器学习之python读取CSV文件

2023-05-16

当我们在用python处理机器学习的问题时,往往需要先读取数据,这些数据通常都是文件,我今天遇到的是CSV文件,是在kaggle竞赛数据集下载的(比如手写数字识别,以及我在博客中用到的泰坦尼克数据都是CSV文件)。
数据下载地址:数据下载
接下来,我介绍两种方法读取文件数据。
第一种:直接用open函数打开文件。程序如下:

import csv
import numpy as np
with open('F:/泰坦尼克/train.csv','r') as csvfile:
    reader = csv.reader(csvfile)
    rows= [row for row in reader]
print (rows)#输出所有数据
data=np.array(rows)#rows是数据类型是‘list',转化为数组类型好处理
print("out0=",type(data),data.shape)
print("out1=",data)

第二种:直接用python 里的pandas读取,很方便。程序如下:

#import pandas as pd
#data=pd.read_csv('F:/泰坦尼克/train.csv')
#print("out0=",data)
import pandas as pd
import os
import numpy as np
trainFile = "F:/泰坦尼克/train.csv"##python3.6版本可读取,但是有的不行,
pwd = os.getcwd()
os.chdir(os.path.dirname(trainFile))
trainData = pd.read_csv(os.path.basename(trainFile))
os.chdir(pwd)
print(trainData)#输出数据
data=trainData.iloc[0:892,0:12]#读取所有数据
print("------------------out",data)
#pandas数据格式为DataFrame,转化为numpy数组格式,方便处理
print (data.as_matrix(columns=None))
print(data.shape)

我的python版本是3.6,如果版本低的话,貌似可以用前面注释的三行就可以了,我最后都转换成数组格式了,好处理。(本来我今天是想处理手写数字识别的,因为那个最后需要转换成数组,但那个文件稍大,我的渣渣电脑就读不出来,所以就先用泰坦尼克这个数据学习读取CSV文件)。
其他参考资料:
pandas处理csv表格
Python3 pandas read_csv 报错解决方法
Python 读取csv的某列
我今天的博文也是参考网上其他博友的的文章内容,非常感谢他们分享知识。
如有错误,欢迎指出,谢谢。


补充一点内容:如何把txt文件转化为csv文件

在尝试softmax分类时, 我们经常使用经典的鸢尾花数据集Iris(下载链接https://archive.ics.uci.edu/ml/datasets/Iris ) 。但是我下载的时候不是那种csv文件,所以我把数据存为txt文件,然后转化为csv文件(按理说把后缀名修改后,就可以了,但是我的电脑上不行),程序如下(python版本3.6):

import numpy as np  
import pandas as pd  
txt=np.loadtxt("C:/Users/jingshan/Desktop/irisdata.txt",
   dtype={'names': ('sepal length', 'sepal width', 'petal length', 'petal width', 'label'),
          'formats': (np.float, np.float, np.float, np.float, '|S15')},
   delimiter=',', skiprows=0)#|S15 (a 15-byte string)
print("out=",txt)
print(type(txt))
txtDF = pd.DataFrame(txt)#转化为DataFrame格式
txt1=txtDF.to_csv('C:/Users/jingshan/Desktop/irisdata1.csv',index=False) 
print(type(txtDF)) 

其中np.loadtxt 作用是把文本文件(*.txt)读入并以矩阵或向量的形式输出。

也可以这样写:

import numpy as np  
import pandas as pd
txt=np.genfromtxt('C:/Users/jingshan/Desktop/irisdata.txt', delimiter=',', dtype=None, names=('sepal length', 'sepal width', 'petal length', 'petal width', 'label'))
print("out=",txt)
print(type(txt))
txtDF = pd.DataFrame(txt)#转化为DataFrame格式
txt1=txtDF.to_csv('C:/Users/jingshan/Desktop/irisdata1.csv',index=False) 

1 ,genfromtxt函数创建数组表格数据
2,genfromtxt主要执行两个循环运算。第一个循环将文件的每一行转换成字符串序列。第二个循环将每个字符串序列转换为相应的数据类型。
3,genfromtxt能够考虑缺失的数据,但其他更快和更简单的函数像loadtxt不能考虑缺失值。

好的,就这样,如有错误,欢迎指出,谢谢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习之python读取CSV文件 的相关文章

随机推荐

  • caffe中几个基本概念

    caffe中几个基本概念 1 caffe中的blob结构是用来进行数据存储 交换和处理网络中正向反向迭代时的数据和导数信息的数据结构 blob是caffe的标准数组结构 他提供了一个统一的内存接口 其将内部的cpu gpu数据之间的传输与存
  • 摄像头引脚定义

    摄像头引脚定义 1 NC NO CONNECT 2 AGND Power Analog ground 3 SIO D I O SCCB serial interface data I O 4 AVDD Power Analog power
  • Android7.0 JACK编译器不支持多用户同时编译的问题的解决

    xfeff xfeff Android7 0 xff08 也就是Android N xff09 上默认使用JACK编译器而不再使用openjdk了 xff0c 但发现JACK不是很好用 xff0c 比如最大的一个问题就是 xff0c 同一台
  • 【树莓派】死机自动重启、掉线自动重连

    目录 WIFI掉线自动重连 首先查看你的板子硬件型号 拿树莓派去做服务器就要配置下这两项 xff0c 保证随时能够VNC控制 WIFI掉线自动重连 http shumeipai nxez com 2017 01 25 raspberry p
  • open vswitch分析

    Open vSwitch 概述 Open vSwitch xff08 下面简称 OVS xff09 是一个高质量的 多层虚拟交换机 OVS 遵循开源 Apache2 0 许可 xff0c 通过可编程扩展 xff0c OVS 可以实现大规模网
  • C# 接口《通俗解释》

    原文地址 xff1a https www cnblogs com hamburger p 4681681 html 接口的定义 xff1a 接口是指定一组函数成员 xff0c 而不实现他们的引用类型 接口使用interface 关键字进行定
  • linux 如何查看指定动态库

    要查看 Linux 系统指定的动态库 xff0c 可以使用以下命令 xff1a 使用 ldconfig 命令 xff1a ldconfig p 该命令将显示系统已加载的所有动态库及其路径 如果要查找特定动态库 xff0c 可以使用 grep
  • Tortoisegit 恢复文件夹被删除的文件(被误删)

    关于Tortoisegit 恢复git文件夹中被删除的文件 xff1a 1 在git文件夹右键tortorisegit show log 2 选择版本 xff08 当时执行删除操作的版本 xff09 3 选择被delete掉的 xff0c
  • putty screen 快捷键

    使用putty的时候 xff0c 开启screen再detach xff0c 可以防止跑程序过程中断开连接而导致程序中断 总结了下putty与screen 相关的快捷键 目前常用的有如下几个 xff08 命令均在putty终端输入 xff0
  • Magento的不同版本(CE,EE,ECE)介绍

    Magento提供了三个不同的版本平台 xff0c 即Magento Community Edition xff08 CE xff09 社区版 xff0c Magento Enterprise Edition xff08 EE xff09
  • c语言初学,字母大小写转换

    这类题目主要通过ASCII码差值实现 xff0c A对应ASCII码十进制数字是65 xff0c a对应ASCII码十进制数字是97 xff0c 即大小写字母之间ASCII码差值为32 xff0c 想要将大写字母转换为小写字母可以将该字符A
  • matlab——subplot多子图共用一个colorbar,微调子图和colorbar位置

    用subplot命令画出多个图后 xff0c 需要让这些图共用一个colorbar 在这里与大家分享我的操作 xff0c 希望能帮助到有需要的人 备注 xff1a 从 R2019b 开始 xff0c 可以在分块图布局中显示共享颜色栏 xff
  • 远程连接服务器数据库报错:Host ‘XXXXXX’ is blocked because of many connection errors

    一 我遇到的问题描述 使用Navicat for mysql连接公司的服务器数据库 xff0c 报错 xff1a Host XXXXXX is blocked because of many connection errors 二 出现错误
  • android中MediaCodec硬编码中关键帧间隔时间设置问题

    在MediaCodec硬编码中设置 xff29 关键帧时间间隔 xff0c 在 xff21 xff30 xff29 中是这么设置的 mMediaCodec 61 MediaCodec createByCodecName debugger g
  • python3 网络编程问题——虚拟机centos7上运行tcp服务器,在主机win10上使用网络调试助手作为tcp客户端无法建立连接,提示1035错误:the socket is marked...

    前提 xff1a 主机和虚拟机都是在同一网段下 我的网络调试助手的连接结果如下图 xff1a 注意 红框中的提示 xff0c 连接超时的结果可能是由于以下两种可能的情况导致的 xff1a 1 服务器端口未开启监听 2 路由项被防火墙拦截 对
  • DSSM pytorch实现

    之前在网上找到了一个文本匹配实现仓库 xff0c 但是没有提供DSSM的代码 xff0c 我就根据那个代码实现以下DSSM 数据集采用的是蚂蚁金服的数据集 也参考过别人的代码 xff0c 但是总感觉怪怪的 xff0c DSSM原文中 xff
  • 文本匹配实验结果总结

    主要把一些实验结果说一下 xff1a DSSM 作为文本匹配的开山鼻祖 xff0c 想法也很简单 xff0c 就是将query 和doc拉到同一维度 xff0c 然后计算余弦相似度 xff0c 网络也是非常简单 xff0c 所以只获得了78
  • 使用wikiextractor 提取wiki数据

    wikiextractor包链接地址 xff1a https github com attardi wikiextractor 安装wikiextractor pip install wikiextractor 然后下载wiki语料库 xf
  • python爬虫(Python读取TXT文件中的URL并下载文件)

    前言 xff1a 本人之前并没有接触过python爬虫 xff0c 但是现在因为要做个试验 xff0c 需要下载海量人脸图片 xff0c 所以需要用到python爬虫这个办法 但是过程中遇到到了很多问题 xff0c 程序调了很久都不成功 x
  • 机器学习之python读取CSV文件

    当我们在用python处理机器学习的问题时 xff0c 往往需要先读取数据 xff0c 这些数据通常都是文件 xff0c 我今天遇到的是CSV文件 xff0c 是在kaggle竞赛数据集下载的 xff08 比如手写数字识别 xff0c 以及