最簡單的方法是有兩個尺寸爲(768, 250)
(目標數組大小)的二維數組。然後提供這兩個數組(例如說inds1
和inds2
作爲原始數組的索引(所以data2 = data[inds1, inds2]
)。這兩個數組給出了應複製到目標數組中相應位置的源數組的座標。所以說第一陣列5
在[10, 11]
位置,而第二個有968
在位置[10, 11]
,這將意味着位置的目標數組的[10, 11]
具有從源陣列的[5, 968]
位置的值。
所以這裏是一個簡化例如:
>>> data = np.arange(10)+np.arange(0, 100, 10)[:,None]
>>> print(data)
[[ 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 25 26 27 28 29]
[30 31 32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47 48 49]
[50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89]
[90 91 92 93 94 95 96 97 98 99]]
>>>
>>> inds1 = np.array([[0, 2, 2], [3, 5, 8]])
>>> inds2 = np.array([[2, 7, 1], [8, 2, 8]])
>>>
>>> data2 = data[inds1, inds2]
>>> print(data2)
[[ 2 27 21]
[38 52 88]]
簡單,優雅,快速,非常感謝! – vueltaconicarus