day04-numpy操作文件

操作文件

使用loadtxt读取文本、csv文件

loadtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0,encoding='bytes')

参数:

  • fname:指定文件名称或字符串。支持压缩文件,包括gz、bz格式。
  • dtype:数据类型。 默认float。object均可接收。
  • comments:字符串或字符串组成的列表。表示**注释字符集开始的标志,默认为#。**加了#则不会读取
  • delimiter:字符串。分隔符。数据之间用什么分割。
  • converters:给一个字典将特定列的数据转换为字典中对应的函数的浮点型数据。例如将空值转换为0,默认为空。
  • skiprows:跳过特定行数据。例如跳过前1行(可能是标题或注释,注释也算行数)。默认为0。
  • usecols:元组。用来指定要读取数据的列,第一列为0。例如(1, 3, 5),默认为空。
  • unpack:布尔型。指定是否转置数组,如果为真则转置,默认为False。
  • ndmin:整数型。指定返回的数组至少包含特定维度的数组。值域为0、1、2,默认为0。
  • encoding:编码, 确认文件是gbk还是utf-8 格式

返回:从文件中读取的数组。

数据:
姓名,年龄,性别,身高
小王,22,男,170
小张,25,女,165
小花,19,女,167
小谭,20,男,169
小胡,21,女,161
小余,19,女,159
小陈,27,男,177

分析:由于每一列的数据类型都不一样,需要自定义数据类型。

datatype = np.dtype([('name',np.str_),('age','i1'),('gender','U1'),('height','i2')])
#计算平均年龄方法一
data = np.loadtxt('has_title.csv',dtype =datatype,delimiter=',',skiprows=1)
#读取绝对路径时:  r'D:/XXX/has_title.csv'或单斜杠转化为双斜杠
print(data['age'].mean())#计算女生的平均身高
isgirl = data['gender']=='女'
print(isgirl)
data['height'][isgirl]
data['height'][isgirl].mean()
"""
[False  True  True False  True  True False]
array([165, 167, 161, 159], dtype=int16)
163.0
"""#计算平均年龄方法二
data = np.loadtxt('has_title.csv',dtype =int,usecols=(1,3),delimiter=',',skiprows=1)
print(data.mean(axis=0)[0])#读取指定的列
user_info = np.dtype([('age','i1'),('height','i2')])
print(user_info)
#使用自定义的数据类型,读取数据
data = np.loadtxt('has_title.csv',dtype = user_info,delimiter = ',',skiprows=1,usecols = (1,3))
print(data)

对于空数据的处理方法

在这里插入图片描述

如上图中小谭的年龄没有数据,空的数据转换成浮点数会报错

使用参数converters

converters =  {列索引:处理的函数,key:value}
# 1. 定义数据类型
def parse_age(age):try:return int(age)except:return 0data =np.loadtxt('has_empty_data.csv',delimiter=',',skiprows=1,usecols=1,converters={1:parse_age})
data

converters={1:parse_age} 的含义是为 CSV 文件中的第二列(索引为 1)应用一个自定义的转换函数 parse_agenp.loadtxt 函数通过 converters 参数允许您指定一个字典,其中键是列的索引,值是用于转换该列数据的函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1472814.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Superset超火的企业级可视化BI分析工具

Superset&#xff0c;听起来就像是超级集合&#xff0c;确实&#xff0c;它几乎集合了所有你需要的数据功能。简单说&#xff0c;它就是一个现代化、功能强大的数据可视化工具。 它支持各种数据库&#xff0c;有着丰富的可视化选项&#xff0c;可以用来创建漂亮的数据仪表盘&a…

无人机常见故障及维修方法详解

一、无人机故障识别与处理原则 无人机故障识别是维修的第一步&#xff0c;要求操作人员具备基本的无人机系统知识和故障识别能力。在识别故障时&#xff0c;应遵循“先易后难、先外后内、先软件后硬件”的原则。一旦识别出故障&#xff0c;应立即停止飞行&#xff0c;避免进一…

C语言之Const关键字与指针

目录 1 前言2 变量与指针的储存方式3 const int *var;int *const var&#xff1b;const int *const var&#xff1b;理解与区分4 总结 1 前言 实际开发过程中经常遇到const关键字作用于指针的情况&#xff0c;例如&#xff1a;const int *var;int *const var&#xff1b;const…

对SRS媒体服务器进行漏洞扫描时,SRS的API模块会出现漏洞,如何修补这些漏洞的简单方法

目录 一、引言 1、srs介绍 2、媒体流介绍 3、应用场景 二、SRS的http_api介绍、及漏洞 1、概述 2、http_api模块的作用 &#xff08;1&#xff09;提供HTTP API服务 &#xff08;2&#xff09;管理和监控SRS服务器 &#xff08;3&#xff09;自定义开发 三、漏洞扫描…

Qt项目:基于Qt实现的网络聊天室---注册模块

文章目录 基本页面设计创建登录界面创建注册界面优化样式完善注册类界面 客户端逻辑完善客户端增加post逻辑客户端配置管理 邮箱注册服务认证服务读取配置邮箱验证服务联调设置验证码过期封装redis操作类封装redis连接池注册功能Server端接受注册请求封装mysql连接池封装DAO操作…

Tomcat(+Servlet)笔记+代码

Tomcat安装和配置 安装在不含中文的路径&#xff0c;路径不能太长 Apache 官网&#x1f447; Apache Tomcat - Welcome! 配置部分 点击下图红框处&#xff0c;找到Tomcat安装位置 添加项目的文件 配好的话&#xff0c;红框这里有个猫 代码部分 新建jsp文件&#xff0c;里…

若依 Vue 前端分离 3.8.8 版中生成的前端代码中关于下拉框只有下拉箭头的问题

生成代码修改前 <el-form-item label"课程学科" prop"subject"><el-select v-model"queryParams.subject" placeholder"请选择课程学科" clearable><el-optionv-for"dict in course_subject":key"dict…

C++ 类和对象 构造函数

一 类的6个默认成员函数&#xff1a; 如果一个类中什么成员都没有&#xff0c;简称为空类。 例&#xff1a; #include <iostream> class Empty {// 空类&#xff0c;什么成员都没有 }; 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&a…

3086.力扣每日一题7/4 Java

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;算法练习关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 思路 解题方法 时间复杂度 空间复杂度 Code 思路 首先通过循环计…

【设计模式】工厂模式(定义 | 特点 | Demo入门讲解)

文章目录 定义简单工厂模式案例 | 代码Phone顶层接口设计Meizu品牌类Xiaomi品牌类PhoneFactory工厂类Customer 消费者类 工厂方法模式案例 | 代码PhoneFactory工厂类 Java高级特性---工厂模式与反射的高阶玩法方案&#xff1a;反射工厂模式 总结 其实工厂模式就是用一个代理类帮…

NoSQL 非关系型数据库 Redis 的使用:

redis是基于内存型的NoSQL 非关系型数据库&#xff0c;本内容只针对有基础的小伙伴&#xff0c; 因为楼主不会做更多的解释&#xff0c;而是记录更多的技术接口使用&#xff0c; 关于redis的介绍请自行搜索查阅。 使用redis数据库首先先去安装&#xff0c; 楼主这里使用的是doc…

信号量(semaphore)

一、信号量简介 前面介绍的消息队列主要用于传输数据&#xff1a;任务与任务之间、任务与中断之间 在有些情况下&#xff0c;不需要传输数据&#xff0c;只需要传递状态即可 • 车开出停车位&#xff0c;你的车可以停进来了 • 课已经录制完成&#xff0c;你可以进行观看了 1.…

【一】m2芯片的mac中安装ubuntu24虚拟机集群

文章目录 1. 虚拟机配置2. 复制虚拟机2.1 修改主机名2.2 修改网络 1. 虚拟机配置 在官方网站下载好ubuntu24-arm版镜像开始安装&#xff0c;安装使用VMWare Fusion的社区免费授权版,使用一台m2芯片的mac电脑作为物理机平台。 为什么选择ubuntu24&#xff1f;因为centOS7目前已…

Android 如何通过代码实时设置EditTextView光标

背景&#xff1a;换肤框架下&#xff0c;QA进行深色浅色切换说输入框光标颜色没有改变&#xff0c;转UI结果UI说需要修改&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 本来有方法可以设置&#xff0c;但是 设置后未生效。重新进入该页面才生效&#xff01;&a…

windows电脑如何运行python的定时任务

这里需要使用&#xff1a;windows系统设置-控制面板里的计划任务 1.打开计划任务之后&#xff0c;选择&#xff1a;创建基本任务 2.填写名称&#xff0c;这里根据自己具体的项目需求填写&#xff0c;然后点击下一步。 3.选择每日&#xff0c;再点击下一步 4.设置时间&…

vue3长列表优化,使用vue-virtual-scroller实现直播间弹幕列表虚拟滚动效果

使用的组件库是&#xff1a;https://github.com/Akryum/vue-virtual-scroller 官方文档&#xff1a;vue-virtual-scroller 安装依赖 npm install --save vue-virtual-scrollernextpnpm install --save vue-virtual-scrollernextyarn add vue-virtual-scrollernext 组件导入…

简过网:教师编制报考要求和条件,都给你汇总好了!

如果你想要考教师编&#xff0c;那么在考试之前你先要明白这些知识&#xff01; ​ 一、什么是教师编&#xff1f; 在编教师拥有的编制为事业编&#xff0c;即在编老师为事业单位工作人员 二、考教师编需要什么条件&#xff1f; 1、普通话 语文学科普通话要求达到二级甲等及…

重定向与转发

转发参数不会自动包含在新的请求中。若要将参数传递给重定向地址&#xff0c;可以在服务器端显式地添加参数到重定向URL中。 在重定向URL中包含参数 import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; impor…

Python + 在线 + 文生音,音转文(中文文本转为英文语音,语音转为中文文本)

开源模型 平台&#xff1a;https://huggingface.co/ars-语言转文本: pipeline("automatic-speech-recognition", model"openai/whisper-large-v3", device0 ) hf: https://huggingface.co/openai/whisper-large-v3 github: https://github.com/openai/wh…

JAVA--JSON转换工具类

JSON转换工具类 import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackso…