numpy,pandas,tensor,mat等数据类型互转(更新中)

pandas转pd

data_np = data_pd.to_numpy()
#输出np.array

最近在数据处理阶段,用到了常见的数据类型,鉴于对某种数据类型处理方式不够熟练,会转成其他格式数据来使用,开个博客记录一下。

mat转np

使用matlab的save函数保存文件

save result_type1

输出result_type1.mat文件

使用python对其读取

from scipy.io import loadmat
import numpy as np
import scipy.io as io
a = loadmat('retult_type1.mat')
np1 = a['变量名']

原始.mat文件包含了你存储的所有变量,在np中读取相应的变量名即可

np转mat

思路:在python中将np类型数据转为mat文件,之后在matlab中进行读取

from scipy.io import loadmat
import numpy as np
import scipy.io as io
mat_path = 'savepath/'
mat = np.zeros([4, 20])
sequence = 1
type1 = 'mi_Data_1.npy'
type2 = 'mi_Data_2.npy'
data_type2 = np.load('../../np/CH/{0}/{1}'.format(sequence,type2))
mat_name = "mi_Data2.mat"
io.savemat('{0}/{1}'.format(mat_path,mat_name),{'name': data_type2})

使用io.savemat将np文件改成mat形式,format对应的参数是存储后的位置以及文件名,'name'对应的参数是保存的数据

 之后有空再更新下npy文件

将numpy文件保存下来

先看一下numpy自带的save函数和例子

 

np.save ('G:/data/labels{0}{1}.npy'.format(参数2, 参数1), numpy变量)

 前面一个参数是保存的位置及文件名,后面是保存的变量

<think>我们正在讨论如何在PyCharm中加载和使用数据集。根据引用内容,我们可以看到几个不同的例子: 1. 引用[1]展示了如何加载图片和JSON标注文件的数据集(CIFAR10格式),使用torchvision.datasets。 2. 引用[2]展示了如何加载.mat文件(MATLAB格式)的数据集,使用h5py库。 3. 引用[3]和[4]则提到了一些与Git和Spark相关的操作,但并不是直接关于数据集加载的。 因此,我们需要根据不同的数据集类型(如图片、文本、MATLAB文件等)来采取不同的加载方法。 步骤: 1. 确定数据集的格式(如:图片、CSV、JSON、MATLAB的.mat等)。 2. 根据格式选择合适的库和加载方法。 3. 在PyCharm中编写代码加载数据集。 下面我将分别介绍几种常见数据集的加载方法: ### 1. 加载图片数据集(如CIFAR10格式) 通常,对于图片数据集,我们可以使用`torchvision.datasets`(PyTorch)或`tensorflow.keras.preprocessing.image_dataset_from_directory`(TensorFlow)来加载。 以PyTorch为例,如果数据集已经按照类别分文件夹存放(每个类别的图片在一个文件夹中),可以使用`torchvision.datasets.ImageFolder`。 ```python import torchvision from torchvision import transforms # 定义数据转换 transform = transforms.Compose([ transforms.Resize((32, 32)), # 调整图片大小 transforms.ToTensor(), # 转换为Tensor ]) # 加载数据集 train_dataset = torchvision.datasets.ImageFolder(root='path/to/train_data', transform=transform) test_dataset = torchvision.datasets.ImageFolder(root='path/to/test_data', transform=transform) ``` 如果数据集是像CIFAR10那样已经打包好的,可以直接使用`torchvision.datasets.CIFAR10`。 ```python train_dataset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform) ``` ### 2. 加载.mat文件(MATLAB格式) 使用`h5py`或`scipy.io`库来加载.mat文件。 如果.mat文件是使用MATLAB 7.3格式保存的(即HDF5格式),则使用`h5py`(如引用[2]所示): ```python import h5py import numpy as np with h5py.File('path/to/EEG_data.mat', 'r') as f: EEG_data = f['EEG_data'][:] # 假设数据集中有一个名为'EEG_data'的变量 EEG_data = np.array(EEG_data) ``` 如果.mat文件是旧版MATLAB格式,则可以使用`scipy.io`: ```python from scipy.io import loadmat mat_data = loadmat('path/to/your_file.mat') EEG_data = mat_data['EEG_data'] # 假设数据集中有一个名为'EEG_data'的变量 ``` ### 3. 加载CSV文件 使用`pandas`库加载CSV文件非常方便。 ```python import pandas as pd df = pd.read_csv('path/to/data.csv') ``` ### 4. 加载JSON文件 使用Python内置的`json`模块。 ```python import json with open('path/to/data.json', 'r') as f: data = json.load(f) ``` ### 5. 加载文本文件(如TXT) 直接使用Python的文件操作。 ```python with open('path/to/data.txt', 'r') as f: lines = f.readlines() ``` ### 在PyCharm中的操作步骤 1. 在PyCharm中创建一个Python项目。 2. 将数据集文件放在项目目录中(或指定路径)。 3. 根据数据集格式编写加载代码。 4. 运行代码进行测试。 ### 注意事项 - 确保安装了必要的库(如`torchvision`, `h5py`, `scipy`, `pandas`等),可以通过PyCharm的终端使用`pip install`安装。 - 注意文件路径的正确性,可以使用绝对路径或相对路径(相对于项目根目录)。 ### 示例:加载自己的图片数据集 假设我们有一个猫狗分类的数据集,目录结构如下: ``` data/ train/ cat/ cat001.jpg ... dog/ dog001.jpg ... test/ ... (类似train) ``` 则加载代码为: ```python import torchvision from torchvision import transforms transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), ]) train_dataset = torchvision.datasets.ImageFolder(root='data/train', transform=transform) ``` ### 总结 在PyCharm中加载数据集,首先需要知道数据集的格式,然后选择相应的库和方法。常见的格式包括图片、CSV、JSON、.mat等,每种格式都有对应的处理库。 §§相关问题§§ 1. PyCharm中如何加载CSV格式的数据集? 2. 如何使用PyTorch在PyCharm中加载自定义图片数据集? 3. 在PyCharm中加载.mat文件时遇到错误怎么办? 4. 如何将加载的数据集用于机器学习模型的训练?</think>在PyCharm中加载和使用数据集的方法取决于数据集格式和用途。以下是常见场景的解决方案: ### 1. 加载图片数据集(如CIFAR10格式) ```python from torchvision import datasets, transforms # 定义数据转换 transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,)) ]) # 加载数据集 train_dataset = datasets.ImageFolder( root='path/to/train_data', # 训练集路径 transform=transform ) test_dataset = datasets.ImageFolder( root='path/to/test_data', # 测试集路径 transform=transform ) ``` > 适用场景:图像分类任务,目录结构应为 `类别/图片.jpg`[^1] ### 2. 加载.mat文件(MATLAB格式) ```python import h5py import numpy as np def load_mat_file(file_path): with h5py.File(file_path, 'r') as f: # 假设数据存储在'EEG_data'字段 data = np.array(f['EEG_data'][:]) return data # 使用示例 eeg_data = load_mat_file("E:/DEAP_matlab/data_preprocessed_matlab/EEG_data.mat") print(eeg_data.shape) # 输出数据维度 ``` > 注意:MATLAB 7.3格式需用h5py,旧版用scipy.io.loadmat[^2] ### 3. 加载CSV/TXT数据集 ```python import pandas as pd # 加载CSV df = pd.read_csv('dataset.csv') # 加载文本数据 with open('text_data.txt', 'r') as f: text_data = f.readlines() ``` ### 4. 使用PyTorch DataLoader ```python from torch.utils.data import DataLoader # 创建数据加载器 train_loader = DataLoader( train_dataset, batch_size=32, shuffle=True ) # 使用示例 for images, labels in train_loader: # 训练模型 pass ``` ### 5. 处理JSON标注文件 ```python import json with open('annotations.json') as f: annotations = json.load(f) # 提取标注信息 for item in annotations['items']: image_path = item['image_path'] label = item['label'] ``` ### 最佳实践 1. **路径处理**:使用绝对路径或项目相对路径 ```python import os dataset_path = os.path.join(os.getcwd(), 'data', 'dataset') ``` 2. **数据预处理**:使用`torchvision.transforms`进行图像增强 3. **内存管理**:大数据集使用生成器或分块加载 4. **版本控制**:将数据路径添加到.gitignore,避免上传大文件[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值