(三)初识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值: ... 
随机推荐
- go-defer语句
			Go语言中的defer语句也非常独特. defer语句仅能被放置在函数或方法中. 它由关键字defer和一个调用表达式组成. 调用表达式所表示的既不能是对Go语言内建函数的调用 也不能是对Go语言标准 ... 
- 面试必问:ACID/CAP
			转载: https://www.jdon.com/artichect/acid-cap.html ACID和CAP的详尽比较 事务机制ACID和CAP理论是数据管理和分布式系统中两个重要的概念,很不巧 ... 
- Kubernetes1-K8s的简单介绍
			一.简介 1.什么是Kubernetes 简称K8s,用8代替8个字符“ubernerte”而成的速写,K8s是一个开源的容器编排平台,它是一个跨主机集群的开源容器调度平台,用于管理云平台中多个主机上 ... 
- Mysql分表的一个考虑
			今天看到一篇博客,讲述的是Mysql的分表方案,内容比较简单,不过有个思路倒是挺好的,记录下,后续分表可以参考 作者主要是说到两种分表,一个是取模,另一个是范围分表 取模:比如用户ID%10,分10张 ... 
- 别说家庭组开不了,一定成功的方法|win7家庭组无法开启|win7如何共享打印机
			两台WIN7要开启家庭组并且共享打印机 这两台电脑必须打开以下服务:dnscache(任务管理器 简写).fdrespub(任务管理器 简写).(接下来下了都是服务里面的)SSDP Discovery ... 
- mysql的一些常用操作(二)
			紧跟上一节,我们创建了四个表: Student.Teacher.Course.Score 接下来就是实际的一些操作了:1.求每门课程的学生人数. select course.cname '课程名称', ... 
- Oauth 2.0学习
			OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为R ... 
- podman初试-和docker对比
			podman初试-和docker对比 1,什么是docker? Docker 是一个开源的应用容器引擎,属于 Linux 容器的一种封装,Docker 提供简单易用的容器使用接口,让开发者可以打包他们 ... 
- 初识mysql索引 - 小白篇
			:接触mysq也有两年左右的时间了,但是对该数据库的理解自认还比较初级,看过很多文章,也看过一些相关的书籍,依然小白....(这里个人总结是两点主要原因:1.对mysql的学习大部分都是源于看一些杂七 ... 
- mac os 10.15 virtualBox6.0.12崩溃
			VBoxManage setextradata global GUI/HidLedsSync 0 参考:https://www.virtualbox.org/ticket/18990 
