我有一个2D矩阵X = ((a11, a12, .. a1n), (a21 .. a2n) .. (am1, .. amn))
和一个1D向量,y = [y1, ..., yn]
分别yi
在1
和之间m
。对于我的每一列i
,X
我想在row处选择元素yi
。也就是说,我想挑选出向量z = (a_(y1 1), ... a_(yn n))
。
有矢量化的方法可以做到这一点吗?
这个怎么样:
In [39]: x = np.arange(12).reshape(4,3)
In [40]: y = np.array([0,3,2])
In [41]: x[y[None, :], np.arange(len(y))[None,:]][0]
Out[41]: array([ 0, 10, 8])
In [42]: x
Out[42]:
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句