Numpy4——结构化数组和Numpy文件

一、结构化数组

1、结构化数组创建的意义
  • ndarray是一种同构数据容器,想要用数组存储不同数据类型的时候会有很不方便,因此诞生了结构化数组
  • 结构化数组提供将数组内单个数据解释为带有任意类型列的表格型结构
  • 主要特点:
    • 可以存储不同类型的数据(整数、浮点数、字符串等)
    • 每个字段有名称和数据类型
    • 支持类似数据库表格的操作
    • 内存布局紧凑,访问高效
2、创建结构化数组
  • 方法一:使用 dtype 直接定义
import numpy as np

# 定义数据类型
dt = np.dtype([('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])

# 创建结构化数组
data = np.array([('Alice', 25, 55.5), ('Bob', 32, 75.2)], dtype=dt)

print(data)
"""
输出:
[('Alice', 25, 55.5) ('Bob', 32, 75.2)]
"""
  • 方法二:根据字典创建

    • 字典是数据内容,数据类型定义成列表嵌套字典的形式
    # 从字典创建结构化数组
    data_dict = {
         
        'names': ['Alice', 'Bob', 'Charlie'],
        'ages': [25, 32, 37],
        'weights': [55.5, 75.2, 80.1]
    }
    
    # 先定义 dtype
    dt = np.dtype([('names', 'U10'), ('ages', 'i4'), ('weights', 'f4')])
    
    # 创建结构化数组
    # 创建空/全是0的结构化数组
    data = np.zeros(len(data_dict['names']), dtype=dt)
    # 此时data的为[('',0,0),('',0,0),('',0,0)]
    data['names'] = data_dict['names']# 将字典的name对应的内容添加到结构化数组中name对应的类型
    data['ages'] = data_dict['ages'] # 同上
    data['weights'] = data_dict

你可能感兴趣的:(numpy,numpy)