一、简述
1.numpy是python中进行科学计算的一个模块,可以进行矩阵的运算等,常用来处理二维的存储数据。
2.torch是神经网络中的用于生成和处理多维存储数据的一个模块,不仅可以生成和处理二维数据,也可以生成和处理更高维度的数据。可以将其理解为神经网络中的numpy。
二、numpy和torch的对比
1.数据格式的对比
import torch
import numpy as np
numpy_data = np.arange(6).reshape(2, 3)
print("numpy_data为:\n", numpy_data)
print("numpy_data的数据类型为", type(numpy_data))
# 将numpy的数据转化成torch的形式
torch_data = torch.from_numpy(numpy_data)
print("torch_data为:\n", torch_data)
print("torch_data的数据类型为:", type(torch_data))
# 将torch的数据转化成numpy到达形式
numpy_data_2 = torch_data.numpy()
print("numpy_data_2为:\n", numpy_data_2)
print("numpy_data_2的数据类型为:", type(numpy_data_2))
2.基本运算的对比
(1)abs运算
import torch
import numpy as np
data = [-1, 2, -3, 5]
# 1.先将list形式转化为ndarray形式
# 2.再讲ndarray形式转化为tensor的形式
data_tensor = torch.from_numpy(np.array(data))
# abs运算
print("numpy求绝对值", np.abs(data))
print("pytorch求绝对值", torch.abs(data_tensor))
(2)矩阵相乘
import torch
import numpy as np
# 矩阵相乘
numpy_data = np.arange(4).reshape(2, 2)
torch_data = torch.from_numpy(numpy_data)
print("numpy中的矩阵相乘结果为\n", np.matmul(numpy_data, numpy_data))
print("torch中的矩阵相乘结果为\n", torch.mm(torch_data, torch_data))