![e830b8948fca0da5c930869d5372072a.png](https://i-blog.csdnimg.cn/blog_migrate/2390711515fcdad190efe845fc6fd025.jpeg)
![1f2a72367ea489f19d1e705948e1e5bb.gif](https://i-blog.csdnimg.cn/blog_migrate/30453465a859db00749492b4f67fdbdb.gif)
欢迎点击上方“关注”,公众号持续提供优质内容
这篇文章中,将介绍使用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)>>> aarray([[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)>>> aarray([[0,1,2,3], [4,5,6, 7], [8,9,10,11]])>>> a.resize(2,6)>>> aarray([[0,1,2,3,4,5], [6,7,8,9,10,11]])
2.数组堆叠和切片
NumPy支持将多个数据按照不同的轴进行堆叠:
>>> a=np.floor(10*np.random.random((2,2)))>>> aarray([[0,8.], [4.,8.]])>>> b=np.floor(10*np.random.random((2,2)))>>> barray([[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.复制和视图
>>> aarray([111,1,2,3,4,5,6,7,8,9,10,11])>>> d=a.copy()>>> print(a is d)False>>> d.shape=2,6>>> darray([[111,1,2,3,4,5], [6,7,8,9,10,11]])>>> a=np.arange(12)>>> aarray([0,1,2,3,4,5,6,7,8,9,10,11])>>> c=a.view()>>> carray([0,1,2,3,4,5,6,7,8,9,10,11])