NumPy.npy与pandas DataFrame的实例讲解


Posted in Python onJuly 09, 2018

用CSV格式来保存文件是个不错的主意,因为大部分程序设计语言和应用程序都能处理这种格式,所以交流起来非常方便。然而这种格式的存储效率不是很高,原因是CSV及其他纯文本格式中含有大量空白符;而后来发明的一些文件格式,如zip、bzip和gzip等,压缩率则有了显著提升。

首先导入模块:

In [1]: import numpy as np
 
In [2]: import pandas as pd
 
In [3]: from tempfile import NamedTemporaryFile
 
In [4]: from os.path import getsize

这里我们将使用Python标准的NamedTemporaryFile来存储数据,这些临时文件随后会自动删除。

接下来获取CSV文件格式的大小:

In [5]: np.random.seed(42)
 
In [6]: a = np.random.randn(365,4)
 
In [7]: tmpf = NamedTemporaryFile()
 
In [8]: np.savetxt(tmpf,a,delimiter=',')
 
In [9]: print("Size CSV file",getsize(tmpf.name))
Size CSV file 36693

下面首先以NumPy.npy格式来保存该数组,随后载入内存,并检查数组的形状以及.npy文件的大小:

In [10]: tmpf = NamedTemporaryFile()
 
In [11]: np.save(tmpf,a)
 
In [12]: tmpf.seek(0)
Out[12]: 0
 
In [13]: loaded = np.load(tmpf)
 
In [14]: print("Shape",loaded.shape)
Shape (365, 4)
 
In [15]: print("Size .npy file",getsize(tmpf.name))
Size .npy file 11760

.npy文件的大小只有CSV文件的三分之一左右。实际上,利用Python可以存储任意复杂的数据结构。也可以序列化格式来存储pandas的DataFrame或者Series数据结构

在Python中,pickle是将Python对象存储到磁盘或其他介质时采用的一种格式,这个格式化的过程叫做序列化。之后,我们可以从存储器中重建该Python对象,这个逆过程称为反序列化。并非所有的Python对象都能够序列化;不过借助诸如dill之列的模块,可以将更多种类的Python对象序列化。

首先用前面生成的NumPy数组创建一个DataFame,接着用to_pickle()方法将其写入一个pickle对象中,然后用read_pickle()函数从这个pickle对象中检索该DataFrame:

In [16]: tmpf.name
Out[16]: '/tmp/tmpyy06safp'
 
In [17]: df = pd.DataFrame(a)
 
In [18]: df.to_pickle(tmpf.name) 是将DataFrame()写入到/tmp/tmpyy06safp中
 
In [19]: print("Size pickled dataframes",getsize(tmpf.name))
Size pickled dataframes 12250
 
In [20]: tmpf.name
Out[20]: '/tmp/tmpyy06safp'
 
In [21]: print("DF from pickle\n",pd.read_pickle(tmpf.name))
DF from pickle
    0   1   2   3
0 0.496714 -0.138264 0.647689 1.523030
1 -0.234153 -0.234137 1.579213 0.767435
2 -0.469474 0.542560 -0.463418 -0.465730
3 0.241962 -1.913280 -1.724918 -0.562288
4 -1.012831 0.314247 -0.908024 -1.412304
5 1.465649 -0.225776 0.067528 -1.424748
6 -0.544383 0.110923 -1.150994 0.375698
7 -0.600639 -0.291694 -0.601707 1.852278
8 -0.013497 -1.057711 0.822545 -1.220844
9 0.208864 -1.959670 -1.328186 0.196861
10 0.738467 0.171368 -0.115648 -0.301104
11 -1.478522 -0.719844 -0.460639 1.057122
12 0.343618 -1.763040 0.324084 -0.385082
13 -0.676922 0.611676 1.031000 0.931280
14 -0.839218 -0.309212 0.331263 0.975545
15 -0.479174 -0.185659 -1.106335 -1.196207
16 0.812526 1.356240 -0.072010 1.003533
17 0.361636 -0.645120 0.361396 1.538037
18 -0.035826 1.564644 -2.619745 0.821903
19 0.087047 -0.299007 0.091761 -1.987569
20 -0.219672 0.357113 1.477894 -0.518270
21 -0.808494 -0.501757 0.915402 0.328751
22 -0.529760 0.513267 0.097078 0.968645
23 -0.702053 -0.327662 -0.392108 -1.463515
24 0.296120 0.261055 0.005113 -0.234587
25 -1.415371 -0.420645 -0.342715 -0.802277
26 -0.161286 0.404051 1.886186 0.174578
27 0.257550 -0.074446 -1.918771 -0.026514
28 0.060230 2.463242 -0.192361 0.301547
29 -0.034712 -1.168678 1.142823 0.751933
..  ...  ...  ...  ...
335 0.160574 0.003046 0.436938 1.190646
336 0.949554 -1.484898 -2.553921 0.934320
337 -1.366879 -0.224765 -1.170113 -1.801980
338 0.541463 0.759155 -0.576510 -2.591042
339 -0.546244 0.391804 -1.478912 0.183360
340 -0.015310 0.579291 0.119580 -0.973069
341 1.196572 -0.158530 -0.027305 -0.933268
342 -0.443282 -0.884803 -0.172946 1.711708
343 -1.371901 -1.613561 1.471170 -0.209324
344 -0.669073 1.039905 -0.605616 1.826010
345 0.677926 -0.487911 2.157308 -0.605715
346 0.742095 0.299293 1.301741 1.561511
347 0.032004 -0.753418 0.459972 -0.677715
348 2.013387 0.136535 -0.365322 0.184680
349 -1.347126 -0.971614 1.200414 -0.656894
350 -1.046911 0.536653 1.185704 0.718953
351 0.996048 -0.756795 -1.421811 1.501334
352 -0.322680 -0.250833 1.328194 0.556230
353 0.455888 2.165002 -0.643518 0.927840
354 0.057013 0.268592 1.528468 0.507836
355 0.538296 1.072507 -0.364953 -0.839210
356 -1.044809 -1.966357 2.056207 -1.103208
357 -0.221254 -0.276813 0.307407 0.815737
358 0.860473 -0.583077 -0.167122 0.282580
359 -0.248691 1.607346 0.490975 0.734878
360 0.662881 1.173474 0.181022 -1.296832
361 0.399688 -0.651357 -0.528617 0.586364
362 1.238283 0.021272 0.308833 1.702215
363 0.240753 2.601683 0.565510 -1.760763
364 0.753342 0.381158 1.289753 0.673181
 
[365 rows x 4 columns]

以上这篇NumPy.npy与pandas DataFrame的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python清除字符串里非字母字符的方法
Jul 02 Python
Django自定义认证方式用法示例
Jun 23 Python
遗传算法之Python实现代码
Oct 10 Python
python调用tcpdump抓包过滤的方法
Jul 18 Python
一文带你了解Python中的字符串是什么
Nov 20 Python
PyCharm搭建Spark开发环境的实现步骤
Sep 05 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
Django用内置方法实现简单搜索功能的方法
Dec 18 Python
python可视化大屏库big_screen示例详解
Nov 23 Python
python如何查找列表中元素的位置
May 30 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 #Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 #Python
将tensorflow的ckpt模型存储为npy的实例
Jul 09 #Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 #Python
利用Python如何生成便签图片详解
Jul 09 #Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 #Python
使用Python更换外网IP的方法
Jul 09 #Python
You might like
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
理解Angular数据双向绑定
2016/01/10 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
[04:00]黄浦江畔,再会英雄——完美世界DOTA2 TI9应援视频
2019/07/31 DOTA
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
python实现代码统计器
2019/09/19 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
机电专业体育教师求职信
2013/09/21 职场文书
护士求职推荐信范文
2013/11/23 职场文书
安全口号大全
2014/06/21 职场文书
社会工作专业求职信
2014/07/15 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
写给老师的感谢信
2015/01/20 职场文书
酒店客房服务员岗位职责
2015/04/09 职场文书
田径运动会广播稿
2015/08/19 职场文书