我有一个数字的一维数组,表示列,例如:[0,0,2,1]
和一个矩阵,例如:
[[1,1,1],
[1,1,1],
[1,1,1],
[1,1,1]]
现在我想将矩阵中的值更改为0,其中列索引大于1D数组中给出的值:
[[1,0,0],
[1,0,0],
[1,1,1],
[1,1,0]]
我怎样才能做到这一点呢?我想我需要一个基于指数的条件,而不是基于价值的条件
说明:矩阵的第一行有索引[0,0;0,1;0,2],其中第二个索引是列。对于索引0,0;0,1和0,2,给出值0。1和2大于0。因此,只有0,0不变为零。
2条答案
按热度按时间kd3sttzy1#
假设
a
是2D数组,v
是1D向量,则可以创建相同大小的遮罩并使用numpy.where
:输入:
产出:
中间体:
zrfyljdw2#
构造元素为对应列索引的二维数组,然后对大于一维数组的对应值的元素进行掩码。
利用广播优势,您可以做到: