目錄
?
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的總數必須和指定維度的元素的個數保持一致,否則會報錯
?
?