1
我有一个numpy的阵列,例如,下面的矩阵行-Wise索引
import numpy as np
A = np.array([[1, 2, 3], [4, 5, 6]])
,并与布尔值另numpy的阵列,例如,
I = np.array([[True, False, False], [False, True, False]])
我想获得的矩阵其元素的索引由I给出。在上面的例子中,我想得到矩阵
array([[1], [5]])
但是如果我尝试
B = A[I]
然后我得到
array([1, 5])
我明白,这是由于事实的Trues
“号s可能不是每行中的相同。但是,如果他们是?有没有使用numpy这样做的方法?
事实上,我想在Theano中使用这个,使用tensor
模块。我有一个包含上述数组的theano表达式(两个T.matrix
theano变量)。有没有方便的方式来计算新的更小的矩阵?
在每个子阵列中只能有一个“真”值吗?如果是,只需使用:'A [I,None]' –
@cᴏʟᴅsᴘᴇᴇᴅ,不,每个子阵列中都有很多'True',但是总是相同的数字。 – nullgeppetto
如果你知道这个数字,你可以在之后重新整理你的数组。 –