Python基础(Numpy切片)
1、打开Python IDE,先导入Numpy模块
import Numpy as np
2、先输入数组
>>> a= np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
3、进行切片
>>> a[5]#用整数作为下标可以获得数组中的某个元素
5
>>> a[3:5]#用切片作为下标可以获得数组的一部分元素,注意包括首位,但不包含尾部
array([3, 4])
>>> a[:5]#切片中省略开始下标,表示从a[0]开始到a[5]结束,但不包含a[5]
array([0, 1, 2, 3, 4])
4、>>> a[:-1]#下标可以是负数,数组倒数第一位为-1,a[:-1]表示从第一位一直取到-1的位置,但不包括-1位的数据
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
5、>>> a[2:4]=100,101#可以通过数组下标赋值来改变数组中数据
>>> a
array([ 0, 1, 100, 101, 4, 5, 6, 7, 8, 9])
6、>>> a[1:-1:2]#从数组下标1取到-1位置,且步长为2,且不包含-1位置数据
array([ 1, 101, 5, 7])
7、>>> a[::-1]#省略切片的开始下标和结束下标,步长为-1,表示整个数组头尾颠倒
array([ 9, 8, 7, 6, 5, 4, 101, 100, 1, 0])
8、>>> a[5:1:-2]#起始点为a[5],终点位置为a[1],且不包含a[1],步长为-2指倒着数
array([ 5, 101])
9、>>> x=np.arange(10,1,-1)#arange函数类似于列表操作,从10倒数取到1,步长为-1
>>> x
array([10, 9, 8, 7, 6, 5, 4, 3, 2])
10、>>> b=x[[3,3,-3,8]]#获取数组x中下标为3、3、1、8的4个元素,组成新的数组,下标可以是负数
>>> b
array([7, 7, 4, 2])
11、>>> b[2]=100#通过赋值改变数组
>>> b
array([ 7, 7, 100, 2])#数组b发生改变
>>> x#x不会变化
array([10, 9, 8, 7, 6, 5, 4, 3, 2])
>>> x[[3,5,1]]=-1,-2,-3#通过赋值修改数组
>>> x
array([10, -3, 8, -1, 6, -2, 4, 3, 2])
>>> np.array([3,3,1,8])
array([3, 3, 1, 8])
>>> x[np.array(np.array([3,3,1,8]))]
array([7, 7, 9, 2])
12、>>> x[np.array([[3,3,1,8],[3,3,-3,8]])]#二维的情况
array([[7, 7, 9, 2],
[7, 7, 4, 2]])
>>> x[[3,3,1,8,3,3,-3,8]].reshape(2,4) # 改变数组形状
array([[7, 7, 9, 2],
[7, 7, 4, 2]])
13、array([5, 4, 3, 2, 1])
>>> x[np.array([True,False,True,False])]
array([5, 3])
>>> x[np.array([True,False,True,False,False])]#布尔数组中下标为0、2 的元素为True,因此获取数组x 中下标为0、2 的元素。
array([5, 3])
>>> x[[True, False, True, False, False]]
array([4, 5, 4, 5, 5])
>>> # 如果是布尔列表,则把True 当作1, False 当作0,按照整数序列方式获取数组x 中的元素
>>> # 布尔数组下标也可以用来修改元素,True为修改,False为不修改
>>> x[np.array([True, False, True, True])] = -1, -2, -3
>>> x
array([-1, 4, -2, -3, 1])