目录
1、利用index进行索引
2、利用“:”和“...”进行索引与切片
3、tf.gather()——对一个维度进行乱序索引
优势:
缺点:
例子
4、tf.gather_nd()——同时对多个维度进行索引
5、tf.boolean_mask()——通过布尔值来进行索引
1、利用index进行索引
2、利用“:”和“...”进行索引与切片
对于每一维
start:end:step
默认的是区间是:【start_index,end_index)
默认的取值间隔为:step
3、tf.gather()——对一个维度进行乱序索引
tf.gather(a,axies=n,indices=[5,1,3,2,5])1、a是数据源,即待索引切片的数据,设a.shape = tensorshape[4,35,8]
2、axies=n,表示的是需要进行索引的维度数,axies=0,表示对第一维进行索引,axies=1,表示对第二维进行索引,以此类推
3、indices=[,,,]:表示要提取数据的索引号4、通过tf.gather()返回的依旧是一个tensor
优势:
前面的两种索引方法是需要遵循一定的顺序进行索引切片的,那要进行乱序索引应该怎么办呢?这就需要用到
tf.gather()
缺点:
tf.gather()——一次只能对一个维度进行索引
例子
4、tf.gather_nd()——同时对多个维度进行索引
如上图可知,要想对多个维度进行索引时,可以用gather依次选取,但是维度很多时就不行了
这时候就需要使用到tf.gather_nd()
5、tf.boolean_mask()——通过布尔值来进行索引
TRUE则表示取值
FALSE表示不取值
tf.boolean_mask(a,mask=[True/False,...,True/False],axies=n)1、a表示的是数据源,待索引的数据集2、mask=【】:这里是由True和false组成的列表,根据这个列表去指定的维度进行索引,TRUE取值,FALSE不取3、axies=n:指定要进行索引的维度数,从外层到内层维度数依次从0递增注意:mask列表中TRUE和FALSE的总数必须和指定维度的元素的个数保持一致,否则会报错