我有一个大小为m x n的矩阵M,列向量为m x 1。对于m行中的每一行,我需要提取与列向量减去1中的值相对应的索引。因此,我得到了m x 1的答案。我该怎么做呢?
zb=a1.a3[np.arange(a1.z3.shape[0]),a1.train_labels-1]
zb.shape
Out[72]: (4000, 4000)
a1.z3.shape
Out[73]: (4000, 26)
a1.train_labels.shape
Out[74]: (4000, 1)
a1.train_labels.head()
Out[75]:
22
1618 25
2330 1
1651 17
133 17
2360 5
#my column vector a1.train_labels is shuffled. I don't want to unshuffle it.发布于 2016-09-18 00:17:32
如果您的2d数组是M,索引是1d数组v,那么您可以使用
M[np.arange(len(v)), v - 1]例如:
In [14]: M = np.array([[1, 2], [3, 4]])
In [15]: v = np.array([2, 1])
In [16]: M[np.arange(len(v)), v - 1]
Out[16]: array([2, 3])https://stackoverflow.com/questions/39548914
复制相似问题