python中冒号:的作用
一开始接触python代码的时候冒号这个存在一直困扰了我很久,说一下我对冒号的理解。
冒号(:)表示的就是一个整体,冒号出现在哪里就代表这个位置对整体。
第一:作为整体用于输出
如在plt.scatter(x[:, 0], x[:, 1])
这行代码中,:在原来行的位置,代表行的这一系列元素的整体。
如:
x = np.array([[1,2,3],[4,5,6]])
print(x[0,:])
print(x[:,0])
输出:
[1 2 3]
[1 4]
可见,x[0,:]
代表的是x在第0行的所有列上的元素,x[:,0]
表示x在所有行上第一列的元素。
同理:print(a[:])
等价于print(a)
,a[n]就表示a中的第n个元素,用:代替n就是取所有元素的意思。
第二,作为整体参与运算
如:
a = np.arange(0,9)
print(a[:-1])
输出: [0 1 2 3 4 5 6 7]
就是在原来a=[0 1 2 3 4 5 6 7 8]
之上砍掉了最后一个元素,即第-1个元素。冒号在其中第作用就是将a中的所有元素作为一个整体,一个整体被-1就是砍掉最后一个元素。
:-n
即砍掉最后n个元素。
若print(a[:1])
,则输出[0]
。相当于取:代替整体中的第一个元素。
第三,双冒号::
a = np.arange(0,9)
print(a[::2])
输出:
[0 1 2 3 4 5 6 7 8]
[0 2 4 6 8]
a[::2]
将a中的元素两个两个分组并取每组中第一个出来,也可以理解为每2个数中取一个。
a[::3]
将a中的元素三个三个分组并取每组中第一个出来。
a = np.arange(0,9)
print(a[::-1])
输出:[8 7 6 5 4 3 2 1 0]
即将a中的元素倒序。
同理,a[::-2]
即将a中元素倒序后两个两个分组并取每组中第一个。