机器学习之numpy和matplotlib学习(十三)

今天来学习numpy读取文件和保存文件的两个函数。
因为后面的机器学习我们需要从各种文件之中载入数据到numpy中,所以这两个函数尤为重要,我对这两个函数的每个参数都有详细讲解,但是还是希望大家亲自试一下。要想学好机器学习,这两个函数必须学会、
本次的eye1.txt文件由程序自动创建,eye2.txt文件需要我们自己创建。
eye2.txt内容如下:

11,12,13,14
21,22,23,24
31,32,33,34
41,42,43,44

实验的全部代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author  : SundayCoder-俊勇
# @File    : numpy5.py
import numpy as np
# numpy基本学习第五课
# 今天学习numpy中的一些基本函数
a=np.eye(3,4)
print a
# 输出结果:
# [[ 1.  0.  0.  0.]
#  [ 0.  1.  0.  0.]
#  [ 0.  0.  1.  0.]]
# 1、将矩阵a保存到一个txt文件之中。
# numpy.savetxt(fname, X, fmt=’%.18e’,delimiter=’ ‘, newline=’\n’, header=’‘, footer=’‘, comments=’#‘)
# 作用:把一个矩阵保存到一个文件之中。
# 参数解释:
# fname : 存储的文件名和格式 例如:eye.txt
# X : 要存储的矩阵
# header='header', header就是存储文件第一行要添加的数据。
# footer='footer',footer就是存储文件最后一行要添加的数据。
# comments参数的作用如下:
# 试一下:np.savetxt("eye1.txt",b,newline='\n',header='header', footer='footer', comments='@@@#')
# 文件eye1.txt的内容如下:

# @@@#header
# 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
# 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
# 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00
# 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00
# @@@#footer

# 例子:
np.savetxt("eye1.txt",a)
# 注意这个函数是每次保存会把之前文件的内容删掉。
# 例子,保存完a之后再保存b。则文件里面只有b
b=np.identity(4)
np.savetxt("eye1.txt",b)

# 文件内容只有b:

# 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
# 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
# 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00
# 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00



# 2、读取文件函数
# numpy.loadtxt(fname, dtype=<type ‘float’>, comments=’#’, delimiter=None, converters=None,
# skiprows=0, usecols=None, unpack=False, ndmin=0)
# 作用是:Load data from a text file.
#        Each row in the text file must have the same number of values.
# [文件的格式可以是csv和txt,实际上读取这两个文件使用的最多]。
# csv是一些数据库文件的后缀名,在实际的机器学习中经常使用。
# 主要参数解释如下:
# fname:读取文件的文件名。例如eye2.txt。
# delimiter:数据之间的分隔符。如使用逗号","。
# dtype:数据类型。如float,str等。
# usecols:选取数据的列。
# unpack=True 意思是分拆存储不同列的数据分开存储。
   # unpack : bool, optional
   # If True, the returned array is transposed, so that arguments may be unpacked using
   # x, y, z = loadtxt(...). When used with a structured data-type, arrays are
   # returned for each field. Default is False.
   # 也就是说选取几列就必须有个变量与之对应,如下面选取第一列存储在c,第二列存储在v
# skiprows=1  跳过表头那一行,再例如:skiprows=[0, 2]) # 跳过文件第一行和第三行

# 其中eye2.txt文件内容如下:
# 11,12,13,14
# 21,22,23,24
# 31,32,33,34
# 41,42,43,44

c,v=np.loadtxt('eye2.txt',delimiter=',',usecols=(0,1),dtype=int,unpack=True,skiprows=1)
print c
print v

# 输出结果:
# [21 31 41]
# [22 32 42]



# 这里主要说一下usecols的用法。
# 如果选取eye2.txt中的前4列,则usecols=(0,1,2,3)。
# 如果取第5列这一列,则usecols=(4,)。
# 这种取单一列的情况容易出问题,请大家多注意。

# 整个语句如下:
# loadtxt("eye2.txt" , delimiter = "," , usecols=(0,1,2,3) , dtype=str)
# loadtxt("eye2.txt" , delimiter = "," , usecols=(4,) , dtype=str)

# 来试一下unpack=False的情况.
k=np.loadtxt('eye2.txt',delimiter=',',usecols=(0,1),dtype=int,unpack=False,skiprows=1)
print k
# 输出结果为:
# [[21 22]
#  [31 32]
#  [41 42]]


所有的输出结果如下:

[[ 1.  0.  0.  0.]
 [ 0.  1.  0.  0.]
 [ 0.  0.  1.  0.]]
[21 31 41]
[22 32 42]
[[21 22]
 [31 32]
 [41 42]]

更新完毕##

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容