深度学习常用数据处理方法(torch, numpy, pandas)

torch.Tensor (PyTorch)

  • 创建张量:
    • torch.tensor(): 创建具有指定数据的张量。例如,torch.tensor([1, 2, 3])创建一个包含1, 2, 3的一维张量。
    • torch.zeros(): 创建指定形状的全零张量。例如,torch.zeros(2, 3)创建一个2x3的全零二维张量。
    • torch.ones(): 创建指定形状的全一张量。例如,torch.ones(3, 4)创建一个3x4的全一二维张量。
    • torch.rand(): 创建指定形状的张量,其元素随机采样自[0, 1)均匀分布。例如,torch.rand(2, 2)创建一个2x2的随机元素张量。
  • 形状操作:
    • tensor.view(): 返回一个具有不同形状的张量,但数据不变。例如,tensor.view(4, -1)可以将张量重新排列为4行。
    • tensor.reshape(): 类似于view(),但可能会在必要时复制数据。例如,tensor.reshape(2, 3)将张量重新形状为2x3。
    • tensor.squeeze(): 删除张量中所有单维度条目。例如,tensor.squeeze()将形状为(1, 3, 1)的张量压缩成(3,)。
    • tensor.unsqueeze(): 在指定位置增加一个维度。例如,tensor.unsqueeze(0)会在张量的最前面增加一个维度。
  • 张量运算:
    • 基本运算:tensor + other, tensor - other, tensor * other, tensor / other进行加、减、乘、除。
    • 矩阵运算:torch.matmul(tensor1, tensor2)用于矩阵乘法,torch.dot(tensor1, tensor2)用于点积。
  • 索引和切片:
    • 类似于NumPy,使用tensor[i]访问元素,tensor[:, i]访问列。
  • 数据类型转换:
    • tensor.to(torch.float32)tensor.int()等方法改变数据类型。
  • 与Numpy互操作:
    • tensor.numpy()将张量转为NumPy数组,torch.from_numpy(ndarray)将数组转为张量。

numpy.array (NumPy)

  • 数组创建:

    • numpy.array(): 从列表等创建数组。例如,numpy.array([1, 2, 3])创建一维数组。
    • numpy.zeros(): 创建全零数组。例如,numpy.zeros((2, 3))创建2x3全零数组。
    • numpy.ones(): 创建全一数组。例如,numpy.ones((3, 4))创建3x4全一数组。
    • numpy.arange(): 创建范围内的数组。例如,numpy.arange(0, 10, 2)创建从0到10步长为2的数组。
  • 形状操作:

    • ndarray.reshape(): 改变数组形状。例如,ndarray.reshape(4, -1)将数组重塑为4行。
    • numpy.squeeze(): 删除单维条目。例如,numpy.squeeze(array)压缩单维度。
    • numpy.expand_dims(): 增加一个维度。例如,numpy.expand_dims(array, axis=0)在最前面增加一个维度。
  • 数组运算:

    • 基本运算:加减乘除和numpy.dot(), numpy.matmul()等线性代数运算。
  • 索引和切片:

    • 使用array[i], array[:, i]进行索引和切片。
  • 广播机制:

    • NumPy在算术运算中支持不同形状的数组。例如,如果一个数组的形状与另一个数组的形状兼容,NumPy将自动扩展小数组以与大数组的形状相匹配。如numpy.array([1, 2, 3]) + 5将结果为array([6, 7, 8])
  • 类型转换:

    • ndarray.astype(): 转换数组的数据类型。例如,array.astype(float)将数组的元素类型转换为浮点数。

pandas的DataFrame

  • 数据创建:

    • pandas.DataFrame(): 可以从列表、字典、NumPy数组等多种数据源创建DataFrame。例如,pd.DataFrame([[1, 2], [3, 4]])创建一个包含两行两列的DataFrame。
  • 数据读取与写入:

    • pd.read_csv(): 从CSV文件读取数据为DataFrame。例如,pd.read_csv('file.csv')file.csv文件读取数据。
    • pd.read_excel(): 从Excel文件读取数据。例如,pd.read_excel('file.xlsx')file.xlsx文件读取数据。
    • df.to_csv(): 将DataFrame写入CSV文件。例如,df.to_csv('file.csv')将DataFrame保存到file.csv文件。
    • df.to_excel(): 将DataFrame写入Excel文件。例如,df.to_excel('file.xlsx')将DataFrame保存到file.xlsx文件。
  • 数据选择和索引:

    • df.loc[]: 基于标签的索引器,可用于选择特定行列。例如,df.loc[0, 'column_name']获取第0行和名为column_name的列的值。
    • df.iloc[]: 基于整数位置的索引器,用于选择特定行列。例如,df.iloc[0, 1]获取第0行第1列的值。
    • df[column_name]: 选择特定列。例如,df['column_name']选择名为column_name的列。
  • 数据清洗:

    • df.dropna(): 删除包含缺失值的行或列。例如,df.dropna()删除任何含有缺失值的行。
    • df.fillna(): 用某个值或方法填充缺失值。例如,df.fillna(value=0)将所有缺失值替换为0。
    • df.drop_duplicates(): 删除重复行。例如,df.drop_duplicates()删除DataFrame中的重复行。
  • 数据转换:

    • df.apply(): 对DataFrame的列应用函数。例如,df.apply(np.sqrt)对DataFrame的每个元素应用平方根函数。
    • df.map(): 主要用于对Series的每个元素应用指定函数。例如,df['column'].map(lambda x: x**2)对名为column的列的每个元素计算平方。
    • df.groupby(): 根据某些标准将数据分组并进行聚合。例如,df.groupby('column_name').sum()根据column_name列的值对数据进行分组并计算每组的和。
  • 数据合并和连接:

    • pd.concat(): 沿着一条轴将多个对象堆叠到一起。例如,pd.concat([df1, df2])df1df2垂直堆叠。
    • pd.merge(): 根据一个或多个键将不同的DataFrame中的行连接起来。例如,pd.merge(df1, df2, on='key')根据key列合并df1df2
  • 统计分析:

    • df.describe(): 提供每列的计数、平均值、标准差、最小值、四分位数和最大值等描述性统计。例如,df.describe()将为DataFrame中的每列提供这些统计信息。
    • df.mean(): 计算每列的平均值。例如,df.mean()会返回一个包含每列平均值的Series。
    • df.std(): 计算每列的标准差。例如,df.std()会返回一个包含每列标准差的Series。
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PyTorch是一个基于Python的科学计算库,它广泛应用于深度学习领域。使用PyTorch进行数据处理的一般步骤如下: 1. 导入PyTorch库及其他必要的库。 ```python import torch import numpy as np import pandas as pd ``` 2. 加载数据集。可以使用Pandas库中的read_csv方法从CSV文件中加载数据,也可以使用Numpy库中的loadtxt方法从文本文件中加载数据。 ```python data = pd.read_csv('data.csv') ``` 3. 数据预处理。可以使用Pandas库中的dropna方法删除缺失值,也可以使用Numpy库中的reshape方法调整数据形状。 ```python data.dropna(inplace=True) data = data.values.reshape(-1, 1) ``` 4. 数据标准化。可以使用PyTorch库中的transforms模块进行数据标准化,也可以手动计算均值和方差并进行标准化。 ```python from torchvision import transforms transform = transforms.Compose([ transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) data = transform(data) ``` 5. 数据集划分。可以使用PyTorch库中的random_split方法将数据集划分为训练集和测试集。 ```python from torch.utils.data import random_split train_size = int(len(data) * 0.8) test_size = len(data) - train_size train_data, test_data = random_split(data, [train_size, test_size]) ``` 6. 数据加载。可以使用PyTorch库中的DataLoader方法将数据集加载到模型中进行训练。 ```python from torch.utils.data import DataLoader train_loader = DataLoader(train_data, batch_size=32, shuffle=True) test_loader = DataLoader(test_data, batch_size=32, shuffle=False) ``` 这样就完成了基于PyTorch数据处理。在实际应用中,根据具体情况可能需要修改上述步骤中的参数和方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值