Python应用笔记-Numpy数据结构详解

Python应用-Numpy数据结构详解


概念介绍
numpy是python的一个扩充程序库,支持高阶大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数字函数库。
对于数据的运算,用矩阵会比python自带的字典或者列表快很多。
主要应用有:
数据分析 机器学习 深度学习
这里我们主要介绍一下numpy的数据结构( 内容来自NumPy菜鸟教程

在这里插入图片描述
数据类型对象(dtype)
数据类型对象是用来描述与数组对应的内存区域如何使用,这依赖如下几个方面:

数据的类型(整数,浮点数或者 Python 对象)
数据的大小(例如, 整数使用多少个字节存储)
数据的字节顺序(小端法或大端法)
在结构化类型的情况下,字段的名称、每个字段的数据类型和每个字段所取的内存块的部分
如果数据类型是子数组,它的形状和数据类型

字节顺序是通过对数据类型预先设定"<“或”>“来决定的。”<“意味着小端法(最小值存储在最小的地址,即低位组放在最前面)。”>"意味着大端法(最重要的字节存储在最小的地址,即高位组放在最前面)。

dtype对象是使用以下语法构造的:
numpy.dtype(object,align,copy)

object - 要转换为的数据类型对象
align - 如果为 true,填充字段使其类似 C 的结构体。
copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用

我们通过以下实例来理解:
实例1

import numpy as np
#使用标量类型
dt=np.dtype(np.int32)
print(dt)
---------------------------------------------------------------------------------------------------
#输出结果为
int32

实例2

import numpy as np
# int8, int16, int32, int64 四种数据类型可以使用字符串'i1','i2','i4','i8'代替
dt=np.dtype('i4')
print(dt)
---------------------------------------------------------------------------------------------------
#输出结果为
int32

实例3

import numpy as np
#字节顺序标注
dt=np.dtype('<i4')
print(dt)
---------------------------------------------------------------------------------------------------
#输出结果为
int32

实例4

#首先创建结构化数据类型
import numpy as np
dt=np.dtype([('age',np.int8)])
print(dt)
---------------------------------------------------------------------------------------------------
#输出结果为
[('age','i1')]

实例5

#将数据类型应用于ndarray对象
import numpy as np
dt=np.dtype([('age',np.int8)])
a=np.array([(10,),(20,),(30,)],dtype=dt)
print(a)
----------------------------------------------------------------------------------------------------
#输出结果为
[(10,)(20,)(30,)]

实例6

#类型字段名可以用于存储实际的age列
import numpy as np
dt=np.dtype([('age',np.int8)])
a=np.array([(10,),(20,),(30,)],dtype=dt)
print(a['age'])
-------------------------------------------------------------------------------------------------------
#输出结果为
[10 20 30]

下面我们定义一个结构化数据类型student,包含字符串字段name,整数字段age,及浮点字段marks,并将这个dtype应用到ndarray对象

实例7

import numpy as np
student=np.dtype([('name','S20'),('age','i1'),('marks','f4')])
print(student)
-------------------------------------------------------------------------------------------------------
#输出结果为
[('name','S20'),('age','i1'),('marks','<f4')]

实例8

import numpy as np
student=np.dtype([('name','S20'),('age','i1'),('marks','f4')])
a=np.array([('abc',21,50),('xyz',18,75)],dtype=student)
print(a)
----------------------------------------------------------------------------------------------------
#输出结果为[('abc',21,50.0),('xyz',18,75.0)]

在这里插入图片描述

发布了64 篇原创文章 · 获赞 25 · 访问量 9904

猜你喜欢

转载自blog.csdn.net/LEEANG121/article/details/103221597