#数据集处理 自建数据集生成.h5文件

本文介绍了如何使用Python和h5py库对Iris数据集进行操作,包括创建新的.h5文件,划分训练集和测试集,并计算并存储图片的旋转信息。核心代码展示了如何读取图片,计算角度,以及将数据结构化存入.h5文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 根据自身需要修改代码!

批量处理.h5数据

import h5py
import os
import cv2
import math
import numpy as np

target_path = 'D:/../../../../datasets'#.h5文件地址
source_path = 'D:/../../../../Data/'#数据地址
idx = 34 #创建的group数
dataset = h5py.File(os.path.join(target_path, "iris.h5"), 'w')

#计算图片角度信息
def change(file, g):
    angle_v = float(file.split('_')[2])
    angle_h = float(file.split('_')[3])
    side = file.split('_')[-1][0]
    if side == 'L':
        h = math.tan(angle_h * 3.1415926/180.0) * 22-g/2.0
        v = math.tan(angle_v * 3.1415926/180.0) * 22-g/2.0
    else:
        h = math.tan(angle_h * 3.1415926 / 180.0) * 22 + g / 2.0
        v = math.tan(angle_v * 3.1415926 / 180.0) * 22 + g / 2.0
    return math.atan(h/22.0), math.atan(v/22.0)

#获取部分信息
def interal(name):
    file = name.split(".bmp")[0]
    g = float(file.split("_")[-2])
    return change(file, g)

#读取图片
def readimg(i):
    path = source_path + '%05d' % (i+1)
    eye_data = []
    gaze_data = []
    for list in os.listdir(path):
        path_side = path + '/' + list
        for root, dirs, files in os.walk(path_side):
            for file in files:
                path_id = path_side + '/' + file
                img = cv2.imread(path_id, cv2.IMREAD_GRAYSCALE)
                img = cv2.resize(img,(60,36))
                img = np.array(img)
                gaze_v, gaze_h = interal(file)
                gaze = [gaze_v, gaze_h]
                gaze = np.array(gaze)
                gaze_data.append(gaze)
                eye_data.append(img)
    return np.array(eye_data), np.array(gaze_data)

if __name__ == '__main__':

#区分训练集和测试集
    for i in range(idx):
        dataset.create_group("/test/%d" % (i+1))  #test新建group “1”\
    print(dataset['test'].keys())
    for i in range(idx):
        dataset.create_group("train/%d" % (i+1))  #train新建group “1”\
#训练
    for i in range(idx):
        h = dataset['test']['%d' % (i+1)]
        img, gaze = readimg(i)
        # print(img)
        h.create_dataset("eye", data=img)
        h.create_dataset("gaze", data=gaze)
    print(list(h.keys()))
#测试
    for i in range(idx):
        h = dataset['train']['%d' % (i+1)]
        img, gaze = readimg(i)
        # print(img)
        h.create_dataset("eye", data=img)
        h.create_dataset("gaze", data=gaze)
    print(list(h.keys()))

### 将PEMS04数据集的CSV文件转换为HDF5 (.h5) 格式的Python方法 为了将PEMS04数据集从CSV格式转换为HDF5 (.h5) 文件,可以利用Pandas库的强大功能来完成这一操作。以下是具体的方法: #### 使用Pandas读取CSV并保存为HDF5 Pandas提供了`read_csv()`函数用于加载CSV文件,并通过`to_hdf()`函数将其存储为HDF5格式。 ```python import pandas as pd # 加载CSV文件 csv_file_path = '/path/to/pems04.csv' dataframe = pd.read_csv(csv_file_path) # 设置HDF5文件路径 h5_file_path = '/content/drive/MyDrive/data.h5' # 保存到HDF5文件中 key_name = 'data' # HDF5中的键名 dataframe.to_hdf(h5_file_path, key=key_name, mode='w', format='table') ``` 上述代码片段展示了如何使用Pandas将CSV文件转换为HDF5格式[^1]。其中的关键参数解释如下: - `mode='w'`: 表示以写入模式打开文件,如果目标文件已存在,则会覆盖它。 - `format='table'`: 支持更灵活的数据查询方式,适合后续复杂的数据访问需求。 #### 验证HDF5文件的内容 可以通过以下代码验证HDF5文件是否成功创建以及其内容是否正确: ```python # 重新加载HDF5文件进行验证 loaded_dataframe = pd.read_hdf(h5_file_path, key=key_name) print(loaded_dataframe.head()) ``` 此部分代码能够确认HDF5文件是否被正确生成,并展示前几行数据以便于检查[^2]。 #### 注意事项 在实际应用过程中需要注意以下几个方面: - CSV文件应具有清晰的列名称和结构化数据形式; - 如果原始CSV文件较大,建议分批处理以减少内存占用; - 对于时间序列数据(如交通流量),需确保时间戳字段已被正确定义为索引或日期时间类型[^3]。 ---
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值