搞机器学习必须掌握的矩阵计算库numpy

(35) 2023-10-02 09:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说搞机器学习必须掌握的矩阵计算库numpy,希望能够帮助你!!!。

搞机器学习必须掌握的矩阵计算库numpy_https://bianchenghao6.com/blog__第1张

搞机器学习必须掌握的矩阵计算库numpy_https://bianchenghao6.com/blog__第2张

欢迎点击上方“关注”,公众号持续提供优质内容

这篇文章中,将介绍使用NumPy的基础知识,NumPy是一个功能强大的Python库,允许更高级的数据操作和数学计算。

什么是 NumPy

NumPy是一个功能强大的Python库,主要用于对多维数组执行计算。NumPy这个词来源于两个单词-- Numerical和Python。NumPy提供了大量的库函数和操作,可以帮助程序员轻松地进行数值计算。这类数值计算广泛用于以下任务:

  • 机器学习模型:在编写机器学习算法时,需要对矩阵进行各种数值计算。例如矩阵乘法、换位、加法等。NumPy提供了一个非常好的库,用于简单(在编写代码方面)和快速(在速度方面)计算。NumPy数组用于存储训练数据和机器学习模型的参数。
  • 图像处理和计算机图形学:计算机中的图像表示为多维数字数组。NumPy成为同样情况下最自然的选择。实际上,NumPy提供了一些优秀的库函数来快速处理图像。例如,镜像图像、按特定角度旋转图像等。
  • 数学任务:NumPy对于执行各种数学任务非常有用,如数值积分、微分、内插、外推等。因此,当涉及到数学任务时,它形成了一种基于Python的MATLAB的快速替代。

NumPy 的安装

pip install numpy

NumPy中的数组操作

1. 改变数组的shape

>>> import numpy as np
>>> a=np.ones((3,4), dtype=int)
>>> a
array([[1,1,1,1],
 [1,1,1,1],
 [1,1,1,1]])
>>> a.shape
(3,4)

除此之外,NumPy还提供了可以直接修改原始数组shape的方法——resize()。resize()方法和reshape()方法的最主要区别在于,reshape()方法返回一个特定shape的数组,而resize()方法会直接更改原数组。

>>> a=np.arange(12).reshape(3,4)
>>> a
array([[0,1,2,3],
 [4,5,6, 7],
 [8,9,10,11]])
>>> a.resize(2,6)
>>> a
array([[0,1,2,3,4,5],
 [6,7,8,9,10,11]])

2.数组堆叠和切片

NumPy支持将多个数据按照不同的轴进行堆叠:

>>> a=np.floor(10*np.random.random((2,2)))
>>> a
array([[0,8.],
 [4.,8.]])
>>> b=np.floor(10*np.random.random((2,2)))
>>> b
array([[1.,4.],
 [4,1.]])
>>> np.vstack((a,b))
array([[0,8.],
 [4.,8.],
 [1.,4.],
 [4.,1.]])
>>> np.hstack((a,b))
array([[0.,8.,1., 4.],
 [4.,8.,4.,1.]])

3.复制和视图

>>> a
array([111,1,2,3,4,5,6,7,8,9,10,11])
>>> d=a.copy()
>>> print(a is d)
False
>>> d.shape=2,6
>>> d
array([[111,1,2,3,4,5],
 [6,7,8,9,10,11]])

>>> a=np.arange(12)
>>> a
array([0,1,2,3,4,5,6,7,8,9,10,11])
>>> c=a.view()
>>> c
array([0,1,2,3,4,5,6,7,8,9,10,11])


今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复