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 ...
随机推荐
- 【Java复健指南02】方法的注意事项
[方法] 方法基本内容 √访问修饰符 (作用是控制方法使用的范围) 可选,[有四种:public\protected\默认\private],具体在后面说 √返回类型 1.一个方法最多有一 ...
- 【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
问题描述 使用 .NET Azure.Identity 中的 DefaultAzureCredential 认证并连接到Azure Key Vault中, 在Key Vault 的示例中,并没有介绍如 ...
- 【Azure 云服务】查看Azure云服务在中国区域的VM型号大小列表(型号编码,定价层,以及CPU, Memory等)
问题描述 如何查看创建 Azure Cloud Service 服务时,可以选择的VM型号吗? 问题解答 根据官网参考,可以通过PowerShell脚本 Get-AzComputeResourceSk ...
- 【Azure 应用服务】如何禁止chinacloudsites.cn 访问?
问题描述 Azure App Service创建后,默认会有一个 Azure App Service创建后,默认会有一个 https://xxxxxxxxxxxxx.chinacloudsites. ...
- 如何实现十亿级离线 CSV 导入 Nebula Graph
本文首发于 Nebula Graph Community 公众号 本次实践是基于业务需求及后续扩展,通过技术选型确定了 Nebula Graph 图数据库,首先需要验证 Nebula Graph 数据 ...
- OBS无法捕获 chrome、webkit、electron窗口,捕获后黑屏
使用 electron 打包的 pc 应用,用于直播软件推流的 OBS 捕获窗体黑屏 现象:唯独chrome浏览器 edge 浏览器等,其它窗体都正常. 猜测:是由 chromium 内核引起的 修改 ...
- 静态类使用@Resource注解注入
工作中需要,简单记录一下 @Component public class AccountUtil { private static AccountIdDao accountIdDao; @Resour ...
- C++类的访问权限
首先明确一个类的用户有三种: 一类用户:类的成员和友元 二类用户:子类的成员及子类的友元 三类用户:外部的用户代码(通过类的对象或指针) 一个类有三种成员 private:只有一类用户可以访问priv ...
- ModuleNotFoundError: No module named xxx 的原因和解决办法(附带新大陆)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- spring boot2集成api文档工具swagger-ui(下)
接上篇 swaggerUI提供了可视化界面帮助我们管理服务的访问路口,这就需要我们在代码中规范我们的书写格式.并且在swagger的界面上还能够模拟浏览器对服务进行访问. 接口总览 创建POST接口 ...