numpy中loadtxt 的用法详解


Posted in Python onAugust 03, 2018

numpy中有两个函数可以用来读取文件,主要是txt文件, 下面主要来介绍这两个函数的用法

第一个是loadtxt, 其一般用法为

numpy.loadtxt(fname, dtype=, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)

上面给出了loadtxt所有的关键字参数, 这里我们可以来一一解释并给出示例

这里我们使用的是jupyter notebook, 可以实现交互式的界面操作

%%writefile test.txt # 这是用来写入文件的代码
1 2 3 4 
2 3 4 5
3 4 5 6
4 5 6 7

首先给出最简单的loadtxt的代码

import numpy as np
a = np.loadtxt('test.txt')#最普通的loadtxt
print(a)

实际上就是直接写文件名, 其他关键字参数都是默认的。输出为

[[1. 2. 3. 4.]
 [2. 3. 4. 5.]
 [3. 4. 5. 6.]
 [4. 5. 6. 7.]]

a为浮点数的原因为Python默认的数字的数据类型为双精度浮点数

%%writefile test.txt
A B C
1 2 3
4 5 6
7 8 9

a = np.loadtxt('test1.txt', skiprows=1, dtype=int)
print(a)

这里的skiprows是指跳过前1行, 如果设置skiprows=2, 就会跳过前两行,  这里的输出为

[[1 2 3]
 [4 5 6]
 [7 8 9]]

%%writefile test.txt
A B C
1 2 3
# AAA
4 5 6
7 8 9

a = np.loadtxt('test2.txt', dtype=int, skiprows=1, comments='#')
print(a)

这里的comment的是指, 如果行的开头为#就会跳过该行, 这里输出为

[[1 2 3]
 [4 5 6]
 [7 8 9]]

%%writefile test.txt
A B C
1, 2, 3
# AA AAA
4, 5, 6
7, 8, 9

(a, b) = np.loadtxt('test.txt', dtype=int, skiprows=1, comments='#', delimiter=',', usecols=(0, 2), unpack=True)
print(a, b)

这里的usecols是指只使用0,2两列, unpack是指会把每一列当成一个向量输出, 而不是合并在一起。

[1 4 7] [3 6 9]

最后介绍converters参数, 这个是对数据进行预处理的参数, 我们可以先定义一个函数, 这里的converters是一个字典, 表示第零列使用函数add_one来进行预处理

def add_one(x):
return int(x)+1#注意到这里使用的字符的数据结构
(a, b) = np.loadtxt('test.txt', dtype=int, skiprows=1, converters={0:add_one}, comments='#', delimiter=',', usecols=(0, 2), unpack=True)
print(a, b)

输出结果为:

[2 5 8] [3 6 9]

补一个GitHub的jupyter-notebook链接...

https://github.com/ChangChunHe/PythonLearning/blob/master/Numpy/8.loadtxt_and_genfromtxt.ipynb

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python彩色化Linux的命令行终端界面的代码实例分享
Jul 02 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
Feb 26 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
Jun 01 Python
python递归函数绘制分形树的方法
Jun 22 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
学生信息管理系统python版
Oct 17 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
Nov 06 Python
python使用PIL实现多张图片垂直合并
Jan 15 Python
django 数据库返回queryset实现封装为字典
May 19 Python
用Python简陋模拟n阶魔方
Apr 17 Python
Python Socket编程详解
Apr 25 Python
Python爬虫基础初探selenium
May 31 Python
matplotlib给子图添加图例的方法
Aug 03 #Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 #Python
Numpy之文件存取的示例代码
Aug 03 #Python
Python数据分析matplotlib设置多个子图的间距方法
Aug 03 #Python
详解python实现识别手写MNIST数字集的程序
Aug 03 #Python
opencv python 基于KNN的手写体识别的实例
Aug 03 #Python
Flask实现图片的上传、下载及展示示例代码
Aug 03 #Python
You might like
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
javascript中直接写php代码的方法
2013/07/31 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
2018/11/14 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
深入理解python try异常处理机制
2016/06/01 Python
python笔记:mysql、redis操作方法
2017/06/28 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
社区道德讲堂实施方案
2014/03/21 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
python迷宫问题深度优先遍历实例
2021/06/20 Python
Django中session进行权限管理的使用
2021/07/09 Python
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers
Django中celery的使用项目实例
2022/07/07 Python