鉴于阵列如何有效地从数组中选择多个切片?
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