Numpy Array的花式切片技术
Numpy中最常用的是ndarray数组,而因为其是多维的有时候需要在不同维度上进行切片。
其实它的切片方式与Matlab类似,熟练以后就很好掌握了。
基本原理是这样,首先切片需要使用序列生成即冒号运算符:
一个单冒号为选取整个序列,也可以指定范围,如1:5表示1~4(包括)这4个元素。同时可以指定步长如1:6:2表示选取1,3,5这3个元素,这个与Python的列表切片是一致的。
然后,使用逗号,来区分轴(axis),轴可以简单地理解为在某个维度上的投影。例如axis=0指的就是行,axis=1指的就是列。那么第一个选取就是行,第二个选取的就是列,中间用逗号隔开,例如下面的一条语句。
1 | arr[:,2] |
在行上选取的是:,即整个序列,在列上选取的是2,即第3列,这样得到的结果就是第三列(注意这时候得到的是行向量而不是列向量)
下面给一个小例子小结一下
1 | from numpy import * |
运行结果如下:
1 | [[0 1 2] |
以上还只是二维的情况,其实多维的情况也同样适用。不过对于我来说这些也基本够用了,做科学计算什么的水平也比较低,哈哈。