深度学习常用数据处理方法(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]访问列。
- 类似于NumPy,使用
- 数据类型转换:
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])。
- NumPy在算术运算中支持不同形状的数组。例如,如果一个数组的形状与另一个数组的形状兼容,NumPy将自动扩展小数组以与大数组的形状相匹配。如
-
类型转换:
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])将df1和df2垂直堆叠。pd.merge(): 根据一个或多个键将不同的DataFrame中的行连接起来。例如,pd.merge(df1, df2, on='key')根据key列合并df1和df2。
-
统计分析:
df.describe(): 提供每列的计数、平均值、标准差、最小值、四分位数和最大值等描述性统计。例如,df.describe()将为DataFrame中的每列提供这些统计信息。df.mean(): 计算每列的平均值。例如,df.mean()会返回一个包含每列平均值的Series。df.std(): 计算每列的标准差。例如,df.std()会返回一个包含每列标准差的Series。
更多推荐
所有评论(0)