# a , b , c , d , e , f , g , h , i , j
# 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
# -10 , -9 , -8 , -7 , -6 , -5 , -4 , -3 , -2 , -1
#
#切片操作基本表达式:object[start_index : end_index : step] [start_index,end_index)
#step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,当step省略时,默认为1
#start_index:表示起始索引(包含该索引本身);该参数省略时,表示从对象“端点”开始取值
#end_index:表示终止索引(不包含该索引本身);该参数省略时,表示一直取到数据”端点“
array = [ 'a' , 'b' , 'c' , 'd' , ' e' , ' f' , 'g ', ' h' , 'i' , 'j']
######################完整切片引用######################
# print(array[0:4:1])# ====>['a', 'b', 'c', 'd']
# print(array[0:4:2])# ====>['a', 'c']
# print(array[0:4:3])# ====>['a', 'd']
# print(array[0:4:4])# ====>['a']
# print(array[0:4:5])# ====>['a']
#######################################################
######################省略切片引用######################
# print(array[0:4])# ====>['a', 'b', 'c', 'd'] 注:当step省略时,默认为step=1
# print(array[1::])# ====>['b', 'c', 'd', ' e', ' f', 'g ', ' h', 'i', 'j'] 解释:从索引为1开始,步长为1.
# print(array[:3:])# ====>['a', 'b', 'c'] 解释:终止索引为3(取出的数据不包含索引为3的数据),步长为1.
# print(array[::])# ====>['a', 'b', 'c', 'd', ' e', ' f', 'g ', ' h', 'i', 'j'] 解释:获得全部数据
# print(array[5:])# ====>[' f', 'g ', ' h', 'i', 'j'] 解释:获得索引为5(包括)往后的全部数据
# print(array[5:-1])# ====>[' f', 'g ', ' h', 'i'] 解释:获得索引为5(包括)到索引为-1(不包括)的全部数据
#print(array[:5:-1])# ====>['j', 'i', ' h', 'g '] 解释:step中的负号表示逆序。即开始方向为最后一个数据。终止方向为索引为5的数据(不包括)
#######################################################
######################连续切片引用######################
#print(array[5:][:1:-1][1:2])# ====>['i'] 解释: 首先获得array[5:]的数据。然后对该数据进行[:1:-1]操作再次得到一组数据,最后对最新的一组数据进行[1:2]得到结果
#######################################################
#这是numpy的切片操作,一般结构如num[a:b,c:d]
#逗号之前为要取的num行的下标范围[a,b),逗号之后为要取的num列的下标范围[c,d);
#逗号之前对行操作,逗号之后对列操作
import numpy as np
X = np.array([
['a','b','c'],
['d','e','f'],
['g','h','i'],
['j','k','l']])
# print(X[0])# ====>['a' 'b' 'c'] 解释:获得第0行元素
# print(X[2])# ====>['g' 'h' 'i'] 解释:获得第2行元素
# print(X[2:])# ====>[['g' 'h' 'i']['j' 'k' 'l']] 解释:获得第2行(包括)元素往后的元素
# print(X[0:2])# ====>[['a' 'b' 'c']['d' 'e' 'f']] 解释:左闭右开区间 。 获得第0行,第1行元素
# print(X[:,1])# ====>['b' 'e' 'h' 'k']解释:获取全部行的第1列元素