鑑於陣列如何有效地從數組中選擇多個切片?
d = np.random.randn(100)
和索引陣列
i = np.random.random_integers(low=3, high=d.size - 5, size=20)
我怎樣纔能有效地創建一個二維數組r
與
r.shape = (20, 8)
使得對於所有j=0..19
,
r[j] = d[i[j]-3:i[j]+5]
在我的情況下,數組非常大(〜200000而不是100和20),所以快速的東西會很有用。
「低」和「高」有什麼區別嗎?像'low = 0,high = d.size - 8'和'd [i [j]:i [j] +8]'? – Kabie 2013-03-20 16:04:49
是的,它確實有所作爲。如果'i'的元素是'<3',那麼'i [j] -3'是負數。類似的上限。 – 2013-03-20 16:13:49
但是如果'all(0 <= elem <= 92 for elem in i)is True'那麼'd [i [j]:i [j] +8]'是一樣的,對嗎? – Kabie 2013-03-20 16:21:16