import numpy as np
#存取元素
#数组元素同列表一样,存在切片的性质
#一维数组
#可以使用太通列表一样的方式对数组元素进行存取
a = np.arange(10)#使用arange创建数组,数组的下标是从0开始的
print a
print a[5]#输出的是下标为5,但是是第6个元素
print a[3:5]#切片取元素,获取下标3,4的元素
print a[:5]#获取从开始到下标为4的元素
print a[:-1]#下标可以是负数,表示数组从后往前数
#重新赋值
a[2:4]=100,101#切片样式的取值可以赋值
print a
print a[1:-1:2]#从下标为1开始取值到最后,每隔两个元素取
print a[::-1]#步长为-1,表示从后往前取值
print a[5:1:-2]#步长为负数时,表示开始下标必须大于结束下标
#和列表不同的是,通过切片获取的新数组和原来的数组公共一个视图。他与原始数组共享一块数据存储空间。
#
#当使用整数列表对数组元素进行存取时,将使用列表中的每个元素当做新数组的下标,从原始的数组中获取元素。使用列表当做下标获取的元素新组成的数组,不与原始的数组共享数据存储空间。
x = np.arange(10,1,-1)#数组中的元素不包含1,终止的元素为2
print x
#[10 9 8 7 6 5 4 3 2]
print x[[3,3,1,8]]
#[7 7 9 2]
x[[3,5,1]]=-1,-2,-3
print x
#当下标是多维数组时,则得到的也是多维数组。我们可以理解成:现将下标数组展平为一维数组,并作为下标获取一个新的一维数组,然后再将其形状修改写成下标数组的形状。
print x[np.array([[3,3,1,8],[3,3,-3,8]])]
print x[[3,3,1,8,3,3,-3,8]].reshape(2,4)
#当使用布尔数组b作为下标存取数组x 中的元素时,将收集数组x 中所有在数组b中对应下标为True的元素。
#使用布尔数组获取的元素新数组,不与原来的数组共享存储空间。
#
x = np.arange(5,0,-1)
print x
#[5 4 3 2 1]
print x[np.array([True,False,True,False,False])]
#[5 3]
#如果是bool列表,则把True当做1,False当做0,按照整数序列方式获取数组x中的元素。
print x[[True,False,True,False,False]]
#如果布尔数组的长度不够,其余的默认是False
x[np.array([True,False,True,True])] = -1, -2, -3
print x
#[-1 4 -2 -3 1]
#存取元素
#数组元素同列表一样,存在切片的性质
#一维数组
#可以使用太通列表一样的方式对数组元素进行存取
a = np.arange(10)#使用arange创建数组,数组的下标是从0开始的
print a
print a[5]#输出的是下标为5,但是是第6个元素
print a[3:5]#切片取元素,获取下标3,4的元素
print a[:5]#获取从开始到下标为4的元素
print a[:-1]#下标可以是负数,表示数组从后往前数
#重新赋值
a[2:4]=100,101#切片样式的取值可以赋值
print a
print a[1:-1:2]#从下标为1开始取值到最后,每隔两个元素取
print a[::-1]#步长为-1,表示从后往前取值
print a[5:1:-2]#步长为负数时,表示开始下标必须大于结束下标
#和列表不同的是,通过切片获取的新数组和原来的数组公共一个视图。他与原始数组共享一块数据存储空间。
#
#当使用整数列表对数组元素进行存取时,将使用列表中的每个元素当做新数组的下标,从原始的数组中获取元素。使用列表当做下标获取的元素新组成的数组,不与原始的数组共享数据存储空间。
x = np.arange(10,1,-1)#数组中的元素不包含1,终止的元素为2
print x
#[10 9 8 7 6 5 4 3 2]
print x[[3,3,1,8]]
#[7 7 9 2]
x[[3,5,1]]=-1,-2,-3
print x
#当下标是多维数组时,则得到的也是多维数组。我们可以理解成:现将下标数组展平为一维数组,并作为下标获取一个新的一维数组,然后再将其形状修改写成下标数组的形状。
print x[np.array([[3,3,1,8],[3,3,-3,8]])]
print x[[3,3,1,8,3,3,-3,8]].reshape(2,4)
#当使用布尔数组b作为下标存取数组x 中的元素时,将收集数组x 中所有在数组b中对应下标为True的元素。
#使用布尔数组获取的元素新数组,不与原来的数组共享存储空间。
#
x = np.arange(5,0,-1)
print x
#[5 4 3 2 1]
print x[np.array([True,False,True,False,False])]
#[5 3]
#如果是bool列表,则把True当做1,False当做0,按照整数序列方式获取数组x中的元素。
print x[[True,False,True,False,False]]
#如果布尔数组的长度不够,其余的默认是False
x[np.array([True,False,True,True])] = -1, -2, -3
print x
#[-1 4 -2 -3 1]