(三)初识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(Greenwich SR)- Eureka
spring cloud study 本次学习基于spring cloud Greenwich SR1 版本 学习要点: Spring Boot/Spring Cloud应用开发套路 加依赖 加注解 ...
- SpringBoot 遇到 No identifier specified for entity
No identifier specified for entity 从字面上不难看出来是没有设置主键 因为没有为标注为@Entity的实体类注明主键 import lombok.Data; impo ...
- Java TCP协议字节处理工具类
1.使用 tcp 协议 读取 输入流的固定长度的字节数 public static byte[] getTcpSpecificBytes(BufferedInputStream bis,int len ...
- requests+lxml+xpath爬取电影天堂
1.导入相应的包 import requests from lxml import etree 2.原始ur url="https://www.dytt8.net/html/gndy/dyz ...
- js自增图片切换
使用js自增进行图片的切换 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=& ...
- 设计模式C++描述----20.迭代器(Iterator)模式
一. 举例说明 我们知道,在 STL 里提供 Iterator 来遍历 Vector 或者 List 数据结构. Iterator 模式也正是用来解决对一个聚合对象的遍历问题,将对聚合的遍历封装到一个 ...
- VS运行遇到的那些坑
今天运行VS项目好好的,就是安装了VS2019后,就出现了无法连接到IIS服务器,这个问题,然后各种办法都试了无效. 解决方法: 1.删除根目录的.vs文件,然后重新生成. 2.修改调试这里的IP改为 ...
- Python 加密 shellcode 免杀
Python 加密 shellcode 免杀 环境准备: Windows7 32 位系统: Shellcode 使用 kali linux Metasploit 生成 shellcode Wind ...
- linux(CentOS release 6.5)环境搭建svn
正文之前,说几句关于svn和git的闲话. 之前用的版本控制工具主要都是svn,随着时间的推移,git以其强大灵活的分支管理功能受到大众喜爱.尤其是多人同时开发时同一项目,且不同部分功能时,git的分 ...
- 入职第一天,装环境 .Ubuntu装jdk1.8,装idea 及tomcat
入职第一天,和之前公司的开发环境感觉天壤之别了,不过万变不离其宗,之前公司eclipse+widows.所以很少玩linux了.今天来就干了一件事.装环境 jdk安装. 下载地址:https://ww ...