我想使用另一个向量从 numpy 矩阵中减去一个列向量,该向量是需要从主矩阵中减去第一个列向量的列的索引。例如。M = array([[ 1, 2, 1, 1], [ 2, 1, 1, 1], [ 1, 1, 2, 1], [ 2, 1, 1, 1], [ 1, 1, 1, 2]]) # An example matrixV = array([1, 1, 1, 1, 1]) # An example column vectorI = array([0, 3, 2, 3, 1, 3, 3]) # The index maxtrix现在我想在 I 中给出的列号处从 M 中减去 V。例如。I[0] 为 0,因此从矩阵 M 的第一列(零索引)中减去 V。同理 I[1] = 3,从矩阵 M 的第四列(三个索引)中减去 V。在操作结束时,由于 3 在 I 中出现了 4 次,所以 V 将从第三列中减去,即 M-4 次的最后一列。我需要只使用广播而不是循环来做到这一点。我尝试了以下方法:M[:, I] - V[np.newaxis, :].T但它最终会广播结果矩阵的列数比 M 中的列数多。
添加回答
举报
0/150
提交
取消