替换 numpy 数组中的元素等待不同元素的值

replace element in numpy array pending a different element's value

我有以下 numpy 数组(作为示例):

my_array = [[3, 7, 0]
            [20, 4, 0]
            [7, 54, 0]]

仅当第一个索引为奇数时,我才想将每行第 3 列中的 0 替换为值 5。 所以预期的结果是:

my_array = [[3, 7, 5]
            [20, 4, 0]
            [7, 54, 5]]

我尝试了 numpy.where 和 numpy.place,但无法获得预期的结果。

有没有一种优雅的方法可以用 numpy 函数来做到这一点?

您可以通过索引为:

my_array[my_array[:, 0] % 2 != 0, 2] = 5

# my_array[:, 0] % 2 != 0   --- Boolean shows modifying rows --> [ True False  True]