numpy的应用案例

目录

python对象和ndarray的转换

应用1,把list对象转换成多维矩阵(ndarray)

思路 调用numpy的asarray()方法。PS: 特别好记,as array 作为一个矩阵。

import numpy as np
##把一个list对象转换成矩阵
ll = [1,2,3]
lla = np.asarray(ll) ##把一个list对象转换成一个多维矩阵(ndarray)
lla ##查看输出结果
array([1, 2, 3]) 

##把一个嵌套list转换成多维矩阵
ll=[[1,2],[2,3]]
lla = np.asarray(ll) 
lla ##查看输出结果
array([[1, 2], 
       [2, 3]])

应用2, 把numpy.ndarray多维矩阵转换成list对象

方法调用ndarray的tolist()函数, 详细参考[2]

import numpy as np
llnd = np.asarray([1,3,4])
ll = llnd.tolist() ##把向量转换list
print("type(ll):",type(ll))

arraynd = np.asarray([[0., 0., 0.], [0., .5, 0.], [1., 1., .5], [0, 2.0, 3.0]])
ll = arraynd.tolist()##把ndarray对象转换成list对象
print("type(ll):",type(ll))

对ndarray对象进行切片操作

应用1,取出张量的某个列数据.

参考文献多维矩阵操作
核心操作 是arrayName[:, i] 用来取出第i列数据。

def convertNdarray():
    y_test = np.random.randint(2, size=(10, 1)) ## 0,1
    print type(y_test), y_test
    print "shape", y_test.shape
    y = y_test[:, 0] ## 取第0列
    print "type:", type(y)
    print y

使用numpy产生随机数据

生成M*N维度的矩阵

import numpy as np
X = 0.3 * np.random.randn(20, 2) ##生成20*2维度的矩阵,元素的值是个随机数
vector = np.arange(4) ##生成长度为3的向量

##{功能}生成一个向量,并将元素的值赋值为固定值,如5.
##{函数}empty()
a = np.empty(7, dtype=int) ##生成大小为7的向量,
a[:] = 5 ##将向量的元素全部赋值为5.

##{功能}生成一个矩阵,并将矩阵的元素赋值为固定值,如7.
##{函数}full()
np.full((3, 5), 7, dtype=int)

参考资料

  1. numpy的官方文档中多维矩阵操作 http://old.sebug.net/paper/books/scipydoc/numpy_intro.html#id3
  2. numpy.tolist() 的文档 https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.ndarray.tolist.html
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch是一个流行的深度学习框架,其中包含了一系列用于构建神经网络的工具和函数。线性回归是机器学习中最简单的算法之一,用于预测一个连续的目标变量。 在PyTorch中,我们可以使用torch.nn模块来构建一个简单的线性回归模型。下面是一个应用线性回归的案例: 假设我们有一个数据集包含了房子的面积和价格。我们想使用线性回归模型来预测给定房子面积时的价格。首先,我们需要导入PyTorch库和相关的模块。 ``` import torch import torch.nn as nn import matplotlib.pyplot as plt import numpy as np ``` 接下来,我们需要定义数据集。假设我们有100个房子的数据,每个数据包含房子的面积和价格。 ``` # 定义输入数据 x = np.random.rand(100, 1) # 生成对应的标签 y = 3 + 4 * x + np.random.randn(100, 1) ``` 然后,我们将数据转换为PyTorch的张量格式。 ``` x = torch.from_numpy(x).float() y = torch.from_numpy(y).float() ``` 接下来,我们需要定义一个线性回归模型。 ``` # 定义线性回归模型 model = nn.Linear(1, 1) ``` 然后,我们需要定义损失函数和优化器。 ``` # 定义损失函数和优化器 criterion = nn.MSELoss() optimizer = torch.optim.SGD(model.parameters(), lr=0.01) ``` 接下来,我们需要训练模型。 ``` # 训练模型 num_epochs = 1000 for epoch in range(num_epochs): # 前向传播 outputs = model(x) loss = criterion(outputs, y) # 反向传播并优化 optimizer.zero_grad() loss.backward() optimizer.step() # 打印训练信息 if (epoch+1) % 100 == 0: print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, loss.item())) ``` 最后,我们可以使用训练好的模型对新的数据进行预测。 ``` # 使用训练好的模型进行预测 predicted = model(x).detach().numpy() # 绘制真实值和预测值的散点图 plt.scatter(x.numpy(), y.numpy(), color='blue') plt.plot(x.numpy(), predicted, color='red') plt.show() ``` 通过以上步骤,我们成功地使用PyTorch实现了线性回归模型,并且通过散点图展示了预测结果和真实值的对比。线性回归模型可以用于各种预测问题,如房价预测、销售量预测等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值