Numpy结构化数组
Numpy结构化数组
Numpy的结构化数组和记录数组为复合的、异构的的数据提供了非常有效的存储。
结构化数组
In [1]: import numpy as np
In [2]: name = ['A','B','C','D']
In [3]: age = [23,34,23,45]
In [4]: weight = [100,120,124,127]
In [5]: x = np.zeros(4,dtype=int)
In [6]: x
Out[6]: array([0, 0, 0, 0])
#通过字典创建复合类型
In [7]: data = np.zeros(4,dtype={'names':('name','age','weight'),'formats':('U10','i4','f8')})
In [8]: data
Out[8]:
array([('', 0, 0.), ('', 0, 0.), ('', 0, 0.), ('', 0, 0.)],
dtype=[('name', '<U10'), ('age', '<i4'), ('weight', '<f8')])
In [10]: data['name'] = name
In [11]: data['age'] = age
In [12]: data['weight'] = weight
In [13]: data
Out[13]:
array([('A', 23, 100.), ('B', 34, 120.), ('C', 23, 124.), ('D', 45, 127.)],
dtype=[('name', '<U10'), ('age', '<i4'), ('weight', '<f8')])
In [14]: data[data['age']<30]
Out[14]:
array([('A', 23, 100.), ('C', 23, 124.)],
dtype=[('name', '<U10'), ('age', '<i4'), ('weight', '<f8')])
#通过元组列表创建复合类型
In [15]: data2 = np.zeros(4,dtype=([('name','S10'),('age','i4'),('weight','f8')]))
In [16]: data2
Out[16]:
array([(b'', 0, 0.), (b'', 0, 0.), (b'', 0, 0.), (b'', 0, 0.)],
dtype=[('name', 'S10'), ('age', '<i4'), ('weight', '<f8')])
记录数组
域可以像属性一样访问。
In [17]: data['age']
Out[17]: array([23, 34, 23, 45])
#通过np.recarray类创建一个记录数组
In [18]: data_rec = data.view(np.recarray)
In [19]: data_rec.age
Out[19]: array([23, 34, 23, 45])
In [20]: %timeit data['age']
82.4 ns ± 0.669 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
#访问时间比直接访问更快
In [22]: %timeit data_rec['age']
2.22 µs ± 32.2 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
#通过属性访问
In [23]: %timeit data_rec.age
2.92 µs ± 44.2 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
Numpy结构化数组的更多相关文章
- Numpy 系列(九)- 结构化数组
简介 之前我们操作Numpy的数组时,都是通过索引来操作的.针对二维数组,使用索引可以完成对行.列的操作.但是这是非常不直观的.可以把二维数组想象成一个excel表格,如果表格没有列名,操作起来会 ...
- NumPy之:结构化数组详解
目录 简介 结构化数组中的字段field 结构化数据类型 创建结构化数据类型 从元组创建 从逗号分割的dtype创建 从字典创建 操作结构化数据类型 Offsets 和Alignment Field ...
- Python数据科学手册-Numpy的结构化数组
结构化数组 和 记录数组 为复合的.异构的数据提供了非常有效的存储 (一般使用pandas 的 DataFrame来实现) 传入的dtpye 使用 Numpy数据类型 Character Descri ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
- NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构
本文摘自<用Python做科学计算>,版权归原作者所有. 上一篇讲到:NumPy-快速处理数据--ndarray对象--数组的创建和存取 接下来接着介绍多维数组的存取.结构体数组存取.内存 ...
- TensorFlow从1到2(六)结构化数据预处理和心脏病预测
结构化数据的预处理 前面所展示的一些示例已经很让人兴奋.但从总体看,数据类型还是比较单一的,比如图片,比如文本. 这个单一并非指数据的类型单一,而是指数据组成的每一部分,在模型中对于结果预测的影响基本 ...
- Python中的结构化数据分析利器-Pandas简介
Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发tea ...
- 《利用Python进行数据分析·第2版》第四章 Numpy基础:数组和矢量计算
<利用Python进行数据分析·第2版>第四章 Numpy基础:数组和矢量计算 numpy高效处理大数组的数据原因: numpy是在一个连续的内存块中存储数据,独立于其他python内置对 ...
- Spark如何与深度学习框架协作,处理非结构化数据
随着大数据和AI业务的不断融合,大数据分析和处理过程中,通过深度学习技术对非结构化数据(如图片.音频.文本)进行大数据处理的业务场景越来越多.本文会介绍Spark如何与深度学习框架进行协同工作,在大数 ...
- ElasticSearch 5学习(10)——结构化查询(包括新特性)
之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...
随机推荐
- 矩池云|GPU 分布式使用教程之 TensorFlow
GPU 分布式使用教程之 TensorFlow TensorFlow 提供了6种策略实现分布式计算,各个策略详情请参考官方文档.本文档使用 MirroredStrategy 实现单机多卡分布式,Mul ...
- 为产品的一堆Visual Studio解决方案引入Directory.Build.props
为什么需要Directory.Build.props? 一个产品有了多个甚至几十个解决方案之后,每个解决方案里面的项目可能会引用一个dll包的不同版本,因此需要集中管理dll包的版本号. .NET的D ...
- AI大模型加速RPAxAI时代到来,谁会是RPA领域的杀手级应用?
GPT等AI大模型震撼来袭,基于RPA的超级自动化仍是最佳落地载体 对话弘玑CPO贾岿,深入了解国产RPA厂商对AI大模型的探索与实践 文/王吉伟 关于RPA已死的说法,在中国RPA元年(2019年) ...
- 【思维题、KMP】P3526 [POI2011]OKR-Periodicity 题解
P3526 [POI2011]OKR-Periodicity 题解 前言 一道非常厉害的思维题.看题解得到了一些提示搞出来了. 作为 2011 年的题还是很厉害的. 约定 定义 \(s[l,r]\) ...
- linux脚本免密的方法/不用输入密码
第一种方法:使用管道(上一个命令的 stdout 接到下一个命令的 stdin):在脚本首行添加 #!/bin/bashecho password | sudo -S apt-get update 第 ...
- Uni-App 实现资讯滚动
项目需要实现资讯的滚动,使用了Swiper组件,实现了首页头部的资讯滚动,简单地做下笔记 效果 实现说明 主要是使用了Swiper可以自动滚动的特性来实现,左边是一个图片,右边则是Swpier,且姜S ...
- Nodejs 命令行调用 exec 与 spawn 差异--- 解决 spawn yarn ENOENT error
Nodejs 命令行调用 exec 与 spawn 差异 比如在前端工程项目中 Nodejs 要调用命令行命令如: yarn electron:build exec 调用 yarn 命令,为了能使命令 ...
- URL URI URN
总结如下: 1.简写: URI (uniform resource identifier)统一资源标志符: URL(uniform resource location )统一资源定位符(或统一资源定位 ...
- Web service是什么? (转载)
转载自 : Web service是什么?- 阮一峰的网络日志 作者: 阮一峰 日期: 2009年8月26日 我认为,下一代互联网软件将建立在Web service(也就是"云") ...
- Linux文件查找、三剑客、正则表达式
Linux文件查找 1.find查找概述 为什么要有文件查找,因为很多时候我们可能会忘了某个文件所在的位置,此时就需要通过find来查找. find命令可以根据不同的条件来进行查找文件,例如:文件名称 ...