【完】Numpy学习笔记

【numpy笔记_2】结构化数组

2023-02-21  本文已影响0人  fakeProgramer

上次说到的array对象是由一个个元素组成的数组,每个元素是一个数字,也可以看做是一个对象。那如果把对象替换成一个包含多种数据类型的“集合”呢?这就是结构化数组的形态。
总而言之:

结构化数组中包含了不同数据类型对象,每个对象被称为一个field。

feild由三部分构成:

这么看可能有点抽象。我们新建一个结构化数组看看。
创建两步走:


import numpy as np
my_dtype = np.dtype(   [('name', 'U10'), ('age', 'i4'), ('weight', 'f4')]   )
my_data = [
    ('哈利', 24, 74.2),
    ('伯特', 19, 81.0),
    ('坚妮', 21, 45.2)
                    ]
my_array = np.array(my_data, dtype=my_dtype)
print(my_array)
print('*'*20)
print(f'姓名name: {my_array["name"]},数据类型: {my_array["name"].dtype}')
print(f'年龄age: {my_array["age"]},数据类型: {my_array["age"].dtype}')
print(f'体重weight: {my_array["weight"]},数据类型: {my_array["weight"].dtype}')
# 运行结果:
[('哈利', 24, 74.2) ('伯特', 19, 81. ) ('坚妮', 21, 45.2)]
********************
姓名name: ['哈利' '伯特' '坚妮'],数据类型: <U10
年龄age: [24 19 21],数据类型: int32
体重weight: [74.2 81.  45.2],数据类型: float32

这么看就很明白了。是的,结构化数据就像这张图一样:


结构化数组.png

U10、i4、f4这些是数据类型标识码,在numpy中,每种数据类型都有一个唯一标识的字符码。唯一标识码和上篇提到的数据类型呈一一对应,如下图:


numpy数据类型to唯一标识符.png

有关结构化数组的概念就介绍到这里。下一篇开始将对numpy的日常操作展开概括性的介绍。

上一篇 下一篇

猜你喜欢

热点阅读