首先,之所以引入Numpy数组,是因为其在数值运算上的效率要远远高于Python本身提供的list容器,会使代码的书写更加的简洁,高效。
1.需要注意numpy数组中的下标是从0开始的,这在对数组元素进行索引时很重要。例如:
![](https://img.haomeiwen.com/i13381242/61fcd8c014f6b51f.png)
![](https://img.haomeiwen.com/i13381242/06bf6ab9d247988e.png)
2.数组的切片,一维数组中d[2:8]要理解为从下标为2的元素开始切片,一直切到该数组的第八个元素。
![](https://img.haomeiwen.com/i13381242/434a76ba8b4b0a39.png)
3.多维数组的切片,这里把大概能出现的情况都用代码进行了概括,并附有注释。重点需要理解的地方就是多维数组的含义,在常见的三维数组中,当数组的形式为b3=np.arange(24).reshape(2,3,4)时,我们就可以理解为2个3行4列。这样就会把抽象的三维数组具体化。
![](https://img.haomeiwen.com/i13381242/dd0a27ebe5fced9e.png)
![](https://img.haomeiwen.com/i13381242/cdf1673b54d9978b.png)
4.多维数组的索引,其实多维数组的索引和切片可以放在一起理解,因为在上图中已经涉及到了多维数组的索引,在这里就不详细的解释了。
5.数组的水平和垂直组合、深度组合。hstack()函数用来实现数组的水平组合,vstack()函数用来实现数组的垂直组合。dstack()函数用来实现数组的深度组合。这里要重点解释一下深度组合的含义:将相同的元组作为参数传给dstack函数,即可完成数组的深度组合,例如有若干张二维平面内的图像点阵数据,我们可以将这些图像数据沿纵轴方向层叠在一起,这就形象地解释了什么是深度组合。
![](https://img.haomeiwen.com/i13381242/52d614208a68b5a9.png)
![](https://img.haomeiwen.com/i13381242/97dc214a4a4fb74d.png)
![](https://img.haomeiwen.com/i13381242/6cf9d962187335e0.png)
![](https://img.haomeiwen.com/i13381242/61ac6c0a8c7505ce.png)
![](https://img.haomeiwen.com/i13381242/8e3a4b99ab2b87e7.png)
![](https://img.haomeiwen.com/i13381242/c10c62c989b1a71e.png)
能力有限,理解有误的地方欢迎批评指正。待更。。。。。。
网友评论