Python语言入门:Numpy数据存取与函数
小标 2018-06-13 来源 : 阅读 896 评论 0

摘要:本文主要向大家介绍了Python语言入门的Numpy数据存取与函数,通过具体的内容向大家展现,希望对大家学习Python语言入门有所帮助。

本文主要向大家介绍了Python语言入门的Numpy数据存取与函数,通过具体的内容向大家展现,希望对大家学习Python语言入门有所帮助。

Numpy数据存取与函数

CSV文件:

        CSV (Comma‐Separated Value, 逗号分隔值),CSV是一种常见的文件格式,用来存储批量数据。

        np.savetxt(frame, array, fmt='%.18e', delimiter=None)

        参数说明:frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件;array : 存入文件的数组;fmt : 写入文件的格式,例如:%d %.2f %.18e;delimiter : 分割字符串,默认是任何空格。

        np.loadtxt(frame, dtype=np.float, delimiter=None,unpack=False)

        参数说明:frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件;dtype : 数据类型,可选;delimiter : 分割字符串,默认是任何空格;unpack  : 如果True,读入属性将分别写入不同变量。

        CSV文件的局限性:CSV只能有效存储一维和二维数组,np.savetxt() np.loadtxt()只能有效存取一维和二维数组。

 

多维数据的存取:

        a.tofile(frame, sep='', format='%s')

        参数说明:frame : 文件、字符串;sep : 数据分割字符串,如果是空串,写入文件为二进制;format : 写入数据的格式。

        np.fromfile(frame, dtype=float, count=‐1, sep='')

        参数说明:frame : 文件、字符串;dtype : 读取的数据类型;count  : 读入元素个数,‐1表示读入整个文件;sep : 数据分割字符串,如果是空串,读入的文件为二进制。

        需要注意:该方法需要读取时知道存入文件时数组的维度和元素类型,a.tofile()和np.fromfile()需要配合使用,可以通过元数据文件来存储额外信息。

 

Numpy的便捷文件存取:

        np.save(fname, array) 或np.savez(fname, array)

        参数说明:fname: 文件名,以.npy为扩展名,压缩扩展名为.npz;array  : 数组变量。

        np.load(fname)

        参数说明:fname: 文件名,以.npy为扩展名,压缩扩展名为.npz。

 

程序实例:

[python] view plain copy
1. # -*- coding: utf-8 -*-  
2.   
3. import numpy as np  
4. import os  
5.   
6. # 设置路径为当前路径  
7. path = os.path.dirname(__file__);  
8. os.chdir(path);  
9.   
10.   
11.   
12. data = np.arange(100).reshape(10, 10);  
13.   
14. # 保存csv文件  
15. np.savetxt('a.csv', data, fmt='%d', delimiter=',');  
16.   
17. # 读取csv文件,不指定数据类型(默认为float)  
18. a = np.loadtxt('a.csv', delimiter=',');  
19. # 读取csv文件,指定数据类型  
20. b = np.loadtxt('a.csv', dtype=np.int, delimiter=',');  
21.   
22.   
23.   
24. # csv只能保持二维数组,任意维度数据的存取使用tofile和fromfile  
25. # sep指定分隔符,若不指定,则文件为二进制文件  
26. data1 = np.arange(100).reshape(5, 10, 2);  
27. data1.tofile("b.dat", sep=",", format="%d");  
28.   
29. # fromfile方法读取文件,需要读取时知道存入文件时数组的维度和元素类型  
30. # a.tofile()和np.fromfile()需要配合使用可以通过元数据文件来存储额外信息  
31. c = np.fromfile("b.dat", sep=",", dtype=np.int).reshape(5,10,2);  
32.   
33.   
34.   
35. # 以numpy的文件类型来存取数据,文件扩展名为.npy,压缩文件为.npz  
36. np.save("c.npy", data);  
37. d = np.load("c.npy");

 

Numpy的随机数函数:

        numpy库中有一个random子库为数组类型提供随机数

Python语言入门:Numpy数据存取与函数


程序实例:

[python] view plain copy
1. # -*- coding: utf-8 -*-  
2.   
3. import numpy as np  
4.   
5. # numpy库中有一个random子库为数组类型提供随机数  
6.   
7. # rand() 生成给定数组大小的随机数组, 浮点数,[0,1),均匀分布  
8. a = np.random.rand(3, 4, 5);  
9.   
10. # randn() 标准正态分布  
11. b = np.random.randn(3, 4, 5);  
12.   
13. # randint(low[,high,shape])  根据shape创建随机整数或整数数组,范围是[low, high)  
14. c = np.random.randint(100, 200, (3, 4));  
15. print(c);  
16.   
17. # seed(s)  随机数种子,s是给定的种子值  
18. # 两次设置相同的随机数种子  生成的随机数一样  
19. np.random.seed(10);  
20. test1 = np.random.randint(10, 20, (3,4));  
21. np.random.seed(10);  
22. test2 = np.random.randint(10, 20, (3,4));  
23.   
24. # shuffle(a) 根据数组a的第1轴进行随排列,改变数组x  
25. np.random.shuffle(c);  
26. print(c);  
27. # permutation(a) 根据数组a的第1轴产生一个新的乱序数组,不改变数组x  
28. d = np.random.randint(100, 200, (3, 4));  
29. print(d);  
30. np.random.permutation(d);  
31. print(d);  
32. # 从一维数组a中以概率p抽取元素,形成size形状新数组replace表示是否可以重用元素,默认为True  
33. e = np.random.randint(100, 200, (8,));  
34. print(e);  
35. f = np.random.choice(e, (3, 2));

Numpy的统计函数:

        NumPy直接提供的统计类函数

 Python语言入门:Numpy数据存取与函数

 

程序实例:

[python] view plain copy
1. # -*- coding: utf-8 -*-  
2.   
3. import numpy as np  
4.   
5. a = np.arange(15).reshape(3, 5);  
6.   
7. # 默认情况下axis = none,求的是所有值的总和  
8. total = np.sum(a);  
9. # axis = 0 每列求总和  
10. total1 = np.sum(a, axis = 0);  
11. # axis = 1 每行求总和  
12. total2 = np.sum(a, axis = 1);  
13.   
14.   
15. # 其他有axis选项的函数类似  
16.   
17.   
18. mean = np.mean(a);  
19. mean1 = np.mean(a, axis = 0);  
20.   
21. # 根据给定轴axis计算数组a相关元素的加权平均值  
22. # 求每列的加权平均,例如第三列:2*10+7*5+1*12/(10+5+1)=4.1875  
23. avg = np.average(a, axis = 0, weights=[10, 5, 1]);  
24.   
25.   
26. # 标准差 std  
27. std = np.std(a);  
28. # 方差 yar  
29. var = np.var(a);  
30.   
31.   
32. b = np.arange(15, 0, -1).reshape(3, 5);  
33.   
34. maxb = np.max(b);  
35. # 扁平化后的下标  
36. min_index = np.argmin(b);  
37. # 重塑成多维下标  
38. remin_index = np.unravel_index(np.argmin(b), b.shape);  
39.   
40. # 最大值与最小值差  
41. cha = np.ptp(b);  
42. # 中值  
43. media = np.median(b);

Numpy的梯度函数:


Python语言入门:Numpy数据存取与函数


        梯度:连续值之间的变化率,即斜率;

        XY坐标轴连续三个X坐标对应的Y轴值:a, b, c,其中,b的梯度是: (c‐a)/2。

Python语言入门:Numpy数据存取与函数

 Python语言入门:Numpy数据存取与函数

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程