数组的切片
根据下标,可以得到数组中的某个后者某几个元素,这是从数组中得到部分元素的一种方法。此外,还有另外一种被称为切片的方式,从这个名称大概猜测,切片能设定范围,根据这个范围从原数组中获得部分元素。
·
定义一个从10到20的等差数组。
这波操作跟以往熟知的python列表差不多,同样遵循着包前不包后的原则。
但是,需要了解的是,会发生的一些新的情况。
我们改变b中的元素,发现a中的元素也是改变了。
造成这样的原因,是因为切片之后的数组跟原来的数组共享了同一个内存空间。
还有其他许多的操作:
以上是对以为数组进行的操作,我们试试对二维数组进行操作。
首先定义数组b。
我们大概的可以想象出来,二维数组b拥有0轴,1轴两个轴,如果操作就是对着两个轴进行操作。
首先是对0轴进行操作:
我们能够通过下标或者切片获取数组中的一部分,这种针对数组的操作,是从轴和索引的角度完成的。
还有另一种对数组的操作,是通过属性和函数来实现的。
针对数组的操作:
所谓的数组变形,就是将一个已有的数组按照要求改变其的形状后生成一个新的数组。
reshape函数是数组对象的方法,reshape函数传入的就是新数组的形状。
此外,np也有函数reshape,np.rehsape。
我们仔细看看详细的描述:
np.reshape(a,newshape,order='C')
a是指原数组,newshape用来接收新数组的形状。
如图所示,0轴为-2,而1轴为1,无法描述的形状,那么,numpy会自动判断0轴的元素个数。
对于数组对象,除了使用np.ndarray.reshape()这种方法让数组变形外,还有一种方法可以将多维数组转化为一维数组。
顾名思义,np.ndarray.flatten()函数的作用就是将数组扁平化,变成一位数组。
新的一维数组完全复制了原来的数组内容,并且相对原数组不在同一个视图。
与np.ndarray.flatten()有相同作用的方法还要有np.reval()或np.ndarray.ravel(),它们也能将数组转化为一维,
只不过需要注意的是,它们的具体特点。
而它们的具体特点是指,它们对数组进行变形后得到的新的数组,与原数组公用同一个视图。