一、获取单个数组值和数组的分片实例
#NumPy数组--获取单个数组值和数组的分片 from numpy import * #列表分片:开始索引,结束索引,步长(左闭右开) list = [1,2,3,4,5,6] print(list[1:4]) print(list[1::2]) print("*****************************") a = array([[1,2,3],[4,5,6],[7,8,9]]) print(a) #输出整个数组 print(a[0,0]) #输出数组a中第一行第一列的元素 print("a[0,1] = {},a[2,1] = {}".format(a[0,1],a[2,1])) print("*****************************") #数组分片 print(a[0:1]) #获取二维数组中的第一行数据,还是一个二维数组。 输出结果:[[1 2 3]] print(a[0:1][0]) #获取二维数组中的第一行数据,输出一维数组。 输出结果:[1 2 3] print("----------") print(a[0:2]) #获取二维数组中的第前两行行数据 print(a[0:2][1]) #获取二维数组中的第二行数据,输出一维数组。 输出结果:[4 5 6] print("----------") b = a[0:] #b和a是同一个数组 print(b) #b[0,0] = 100 #修改后,第一个值变为100 #print(a) print("*****************************") print(a[0::2]) print("----------") print(a[1:10]) #如果索引越界,则相当于省略索引a[1:] print("----------") print(a[-3:-1]) print("*****************************") #[1,2] * [5,6] + [7,8] x = a[0:1,0:2] #第一行的前面两个元素 y = a[1:2,1:] #第二行的后面两个元素 z = a[2:,0:2] #第三行的前面两个元素 print(x) print(y) print(z) print(x*y+z)
输出结果:
[2, 3, 4] [2, 4, 6] ***************************** [[1 2 3] [4 5 6] [7 8 9]] 1 a[0,1] = 2,a[2,1] = 8 ***************************** [[1 2 3]] [1 2 3] ---------- [[1 2 3] [4 5 6]] [4 5 6] ---------- [[1 2 3] [4 5 6] [7 8 9]] ***************************** [[1 2 3] [7 8 9]] ---------- [[4 5 6] [7 8 9]] ---------- [[1 2 3] [4 5 6]] ***************************** [[1 2]] [[5 6]] [[7 8]] [[12 20]]