python中三個點(…)
阿新 • • 發佈:2020-12-23
一句話總結: …代替了切片操作中前面所有的:, 即a[:, :, None] 和a[…, None]等價
這裡主要涉及python和numpy的切片操作。
下面以二維切片為例:
import numpy as np a = np.arange(25).reshape((5, 5)) print(a) print(a[1:3, 2:5]) ''' [[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14] [15 16 17 18 19] [20 21 22 23 24]] [[ 7 8 9] [12 13 14]] ''' print(a[:, 2:5]) ''' [[ 2 3 4] [ 7 8 9] [12 13 14] [17 18 19] [22 23 24]] ''' print(a[:, 2:5, None]) ''' [[[ 2] [ 3] [ 4]] [[ 7] [ 8] [ 9]] [[12] [13] [14]] [[17] [18] [19]] [[22] [23] [24]]] '''
多維切片是按照各個維度進行切片操作的。此處分別取第一維的2-3,第二維的3-5,即7 8 9 12 13 14. 從一開始計數
None代表新增加一個維度。print(a[:, 2:5, None])在第三個維度上用了None,所以成為5x3x1. 如果用在第二個維度,即如下圖所示:
print(a[:, None, 2:5])
關於三個點的解釋
a[:,:,None] 和a[…, None]等價
…代替了前面的兩個:
參考:https://blog.csdn.net/z13653662052/article/details/78010654