(三)初识NumPy(数据CSV文件存取和多维数据的存取)

本章主要介绍的是数据的CSV文件存取和多维数据的存取。
一、数据的CSV文件存取
1、CSV的写文件:
np.savetxt(frame, array, fmt='%.18e', delimiter=None)
- frame:文件、字符串或产生器,可以是.gz或.bz的压缩文件;
- array:存入文件的数组;
- fmt:写入文件的格式,例如:%d、%.2f、%.18e;
- delimiter:分割字符串,默认是任何空格。
举个栗子:用Numpy生成5 * 20的二维数组,并且把该数组保存到a.csv的文件中:
import numpy as np
a = np.arange(100).reshape(5, 20)
np.savetxt('a.csv', a, fmt='%d', delimiter=',')
2、CSV的读文件:
np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)
- frame:文件、字符串或产生器,可以是.gz或.bz的压缩文件;
- dtype:数据类型,可选;
- delimiter:分割字符串,默认是任何空格;
- unpack:如果True,读入属性将分别写入不同变量。
举个栗子:读a.csv的文件:
b = np.loadtxt('a.csv', dtype=np.int, delimiter=',')
print(b)
[[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]]
备注:但是CSV文件有自身的局限性,只能有效的存储一维和二维数组。
二、多维数据的存取
常规文件的存取:
1、写文件:
a.tofile(frame, sep=' ', format='%s')
- frame:文件、字符串;
- sep:数据分割字符串,如果是空串,写入文件为二进制;
- format:写入数据格式。
举个栗子:将三维数组写入b.dat中:
import numpy as np
a = np.arange(100).reshape(5, 10, 2)
a.tofile("b.dat", sep=",", format='%d')
2、读文件:
np.fromfile(frame, dtype=float, count=-1, sep=' ')
- frame:文件、字符串;
- dtype:读取的数据类型;
- count:读入元素个数,-1表示读入整个文件;
- sep:数据分割字符串,如果是空串,读入文件为二进制。
举个栗子:将b.dat文件读文件:
c = np.fromfile("b.dat", dtype=np.int, sep=",").reshape(5, 10, 2)
print(c)
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[10 11]
[12 13]
[14 15]
[16 17]
[18 19]] [[20 21]
[22 23]
[24 25]
[26 27]
[28 29]
[30 31]
[32 33]
[34 35]
[36 37]
[38 39]] [[40 41]
[42 43]
[44 45]
[46 47]
[48 49]
[50 51]
[52 53]
[54 55]
[56 57]
[58 59]] [[60 61]
[62 63]
[64 65]
[66 67]
[68 69]
[70 71]
[72 73]
[74 75]
[76 77]
[78 79]] [[80 81]
[82 83]
[84 85]
[86 87]
[88 89]
[90 91]
[92 93]
[94 95]
[96 97]
[98 99]]]
Numpy的便捷文件存取:
1、写文件:
np.save(frame, array) 或np.savez(frame, array)
- frame:文件名,以.npy为扩展名,压缩扩展名为.npz;
- array:数组变量。
2、读文件:
np.load(frame)
- frame:文件名,以.npy为扩展名,压缩扩展名为.npz;
举个栗子:
a = np.arange(100).reshape(5, 10, 2)
np.save("a.npy", a)
b = np.load("a.npy")
print(b)
备注说明:Numpy的读文件不需要知道数据的维度即可还原成原先的维度,但是常规读文件时必须指定文件的维度。
(三)初识NumPy(数据CSV文件存取和多维数据的存取)的更多相关文章
- NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构
本文摘自<用Python做科学计算>,版权归原作者所有. 上一篇讲到:NumPy-快速处理数据--ndarray对象--数组的创建和存取 接下来接着介绍多维数组的存取.结构体数组存取.内存 ...
- 机器学习:PCA(高维数据映射为低维数据 封装&调用)
一.基础理解 1) PCA 降维的基本原理 寻找另外一个坐标系,新坐标系中的坐标轴以此表示原来样本的重要程度,也就是主成分:取出前 k 个主成分,将数据映射到这 k 个坐标轴上,获得一个低维的数据集. ...
- 微软BI 之SSAS 系列 - 多维数据集中度量值设计时的聚合函数 (累加性_半累加性和非累加性)
在 SSAS 系列 - 实现第一个 Cube 以及角色扮演维度,度量值格式化和计算成员的创建 中主要是通过已存在的维度和事实数据创建了一个多维数据集,并同时解释了 Role-Playing Dimen ...
- 【转】 TechED2010与我(三) —— 初识云计算
作者用到的比喻很好. 网址:TechED2010与我(三) -- 初识云计算 初识云计算最近"云计算"被炒的很热,但是由于工作重点主要是做WinForm的控件开发,对云计算的接触比 ...
- 用NPOI实现导入导出csv、xls、xlsx数据功能
用NPOI实现导入导出csv.xls.xlsx数据功能 直接上代码 首先定义一个接口 如果需要直接操作文件的话,就自己在封装一次 然后定义csv类的具体实现 这个需要引入命名空间LumenWo ...
- Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念
Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念 进入到了Linux学习之CentOS第三篇了,这篇文章主要记录下对linux文件系统的初步认识,以及用户组.用户权限.文 ...
- [数据科学] 从csv, xls文件中提取数据
在python语言中,用丰富的函数库来从文件中提取数据,这篇博客讲解怎么从csv, xls文件中得到想要的数据. 点击下载数据文件http://seanlahman.com/files/databas ...
- Docker数据卷Volume实现文件共享、数据迁移备份(三)--技术流ken
前言 前面已经写了两篇关于docker的博文了,在工作中有关docker的基本操作已经基本讲解完了.相信现在大家已经能够熟练配置docker以及使用docker来创建镜像以及容器了.本篇博客将会讲解如 ...
- $python数据分析基础——初识numpy库
numpy库是python的一个著名的科学计算库,本文是一个quickstart. 引入:计算BMI BMI = 体重(kg)/身高(m)^2 假如有如下几组体重和身高数据,让求每组数据的BMI值: ...
随机推荐
- 【Spring Cloud】服务容错保护:Hystrix(四)
一.雪崩效应 在微服务架构中,由于服务和服务之间可以互相调用,一项工作的完成可能会依赖调用多个微服务模块,但由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就 ...
- linux自启动脚本.sh
while [ 1 ]; do PRO_NUM=`ps -ef | grep "cms$" | grep -v "grep" | wc ...
- 造轮子了!NETCore跨平台UI框架,CPF
CPF(暂时命名)(Cross platform framework),模仿WPF的框架,支持NETCore的跨平台UI框架,暂时不够完善,只用于测试,暂时只支持Windows和Mac.支持数据绑定, ...
- 1.在ubuntu中软件安装在哪里?
ubuntu下安装软件有四种方式: 1.通过deb格式的离线软件包安装 sudo dpkg -i xxx.deb # 安装包,安装程序 -i: install sudo dpkg -r packa ...
- 基于mysql-8.0.16-winx64的主从搭建
1.主服务器的my.ini文件内容:[mysqld]# 主库和从库需要不一致server-id=1log-bin=mysql-bin# 同步的数据库binlog-do-db=master-slave# ...
- 基础安全术语科普(三)——RAT
什么是RAT? RAT 即 Remote Access Tools (远程管理工具或远程访问工具)的缩写.通俗点说就是木马病毒. RAT 分为两部分——客户端 与 服务端. RAT的工作原理? 服务端 ...
- vue 自定义侧边栏 递归无限子级菜单
有很多网站会涉及到导航栏,我自己在开发中用的是element导航组件,并且自定义事件,给大家分享一下. 1.使用递归方法,无限循环子级菜单. 2.使用组件封装,维护方便. 3.使用index作为路由跳 ...
- HDFS基本命令与Hadoop MapReduce程序的执行
一.HDFS基本命令 1.创建目录:-mkdir [jun@master ~]$ hadoop fs -mkdir /test [jun@master ~]$ hadoop fs -mkdir /te ...
- SpringCloud之Nacos服务发现(十七)
一 Nacos简介 Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现.配置和管理. Nacos主要提供以下四大功能: 服务发现与服务健康检查 Nacos使服务更容易注册自己并 ...
- .NET webAPI中集成swagger
最近做的项目使用winform三层+webapi,对于webAPI路由文档管理一直觉得单独做一些管理比较麻烦,并且测试的时候项目内的代码测试运行起来也比较麻烦,所以在网上开始检索相关办法,发现热度比较 ...