Python numpy之结构化数据类型

您所在的位置:网站首页 什么叫非结构化数据类型 Python numpy之结构化数据类型

Python numpy之结构化数据类型

2023-08-12 05:06| 来源: 网络整理| 查看: 265

前言

众所周知,numpy 库是科学计算的基础库。我们前面学习了numpy ndarray 对象要求数组中数据元素同质。同时,numpy 数组元素值内存空间大小一致,并且底层采用C-order(行优先存储)或者Fortran-order(列优先存储)两种存储方式。使之numpy 数组相比Python list计算速度和内存上更加有优势。

在 numpy 索引与切片 和 numpy 高级索引中,知道了数组也与Python list等一样支持索引。numpy 数组索引通过非负整数元组、布尔值、其他数组或者整数来实现的。

大伙肯定和我一样,numpy 数据要求数据类型都必须要同质的,哪面对不同类型的数据需要计算咋搞?

我们都知道,如果使用Python内置库中,我们都知道可以支持key-value字典的数据类型,可以轻松实现我们上述的场景。

哪如果numpy 如果不支持这一场景,我们就放弃使用它,哪它怎么会是科学Python 和PyData生态系统的核心?

一通网上查阅,哈哈,终于被我们发现了,numpy 数组还有一种叫结构化数组的概念。

本期,我们将学习 numpy 库的结构化数组相关知识,Let’s go~

1. numpy 结构化数组概述 什么是结构化数组?

numpy 结构化数组是通过dtype 定义的字段组成的一组ndarray数组。

我们使用Python中dict可以轻松使用key-value形式、list或者tuple就可以定义如下数据。

Python dict 字典实现: ``` stu1 = {"name":"Tom","age":10,"weight":50} stu2 = {"name":"Anne","age":12,"weight":42} stu_list = [stu1,stu2] 复制代码 ``` Python list+tuple实现 ``` stu_list = [("Tom",10,50),("Anne",12,42)] 复制代码 ``` 对于numpy 结构化数组,通过 dtype 定义每个字段数据类型,实现如下 ``` >>> stu_list = np.array([("Tom",10,50),("Anne",12,42)],dtype=[("name","U10"),("age","i4"),("weight","i8")]) >>> stu_list array([('Tom', 10, 50), ('Anne', 12, 42)], dtype=[('name', '


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3