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。