操作 | PyTorch函数 | NumPy函数 |
---|---|---|
矩阵形状 | tensor.shape or tensor.size() | array.shape |
改变形状 | tensor.view(shape) or tensor.reshape(shape) | array.reshape(shape) |
矩阵转置 | tensor.t() (2D) or tensor.permute(*dims) | array.T or array.transpose(*axes) |
矩阵乘法 | torch.matmul(tensor1, tensor2) or tensor1 @ tensor2 | numpy.matmul(array1, array2) or array1 @ array2 |
元素级乘法 | tensor1 * tensor2 | array1 * array2 |
矩阵加法 | tensor1 + tensor2 | array1 + array2 |
矩阵减法 | tensor1 - tensor2 | array1 - array2 |
矩阵求和 | torch.sum(tensor, dim) | numpy.sum(array, axis) |
广播 | 自动应用 | 自动应用 |
求平均 | torch.mean(tensor, dim) | numpy.mean(array, axis) |
求最大值 | torch.max(tensor, dim) | numpy.max(array, axis) |
求最小值 | torch.min(tensor, dim) | numpy.min(array, axis) |
条件筛选 | tensor[condition] | array[condition] |
连接矩阵 | torch.cat(tensors, dim) | numpy.concatenate(arrays, axis) |
堆叠矩阵 | torch.stack(tensors, dim) | numpy.stack(arrays, axis) |
按元素求指数 | torch.exp(tensor) | numpy.exp(array) |
对角矩阵 | torch.diag(tensor) | numpy.diag(array) |
逐元素应用函数 | torch.apply_(func) | numpy.apply_along_axis(func, axis, array) |
切片 | tensor[start:stop:step] | array[start:stop:step] |
选取特定索引 | torch.index_select(tensor, dim, index) | array.take(indices, axis) |
转换为其他数据类型 | tensor.type(dtype) | array.astype(dtype) |
创建矩阵 | torch.tensor(data) | numpy.array(data) |
创建单位矩阵 | torch.eye(n) | numpy.eye(n) |
创建全零矩阵 | torch.zeros(shape) | numpy.zeros(shape) |
创建全一矩阵 | torch.ones(shape) | numpy.ones(shape) |
创建随机矩阵 | torch.rand(shape) | numpy.random.rand(*shape) |
创建正态分布随机矩阵 | torch.randn(shape) | numpy.random.randn(*shape) |
创建等间隔数值 | torch.linspace(start, end, steps) | numpy.linspace(start, end, num) |
创建等间隔整数 | torch.arange(start, end, step) | numpy.arange(start, stop, step) |
矩阵拼接 | torch.cat([tensor1, tensor2], dim) | numpy.concatenate([array1, array2], axis) |
torch中与numpy中对矩阵操作的类似函数对比
于 2024-01-08 19:56:35 首次发布