如何根据另一列替换numpy数组中的值?

时间:2013-12-03 15:36:39

标签: python arrays numpy

假设我有以下内容:

import numpy as np

data = np.array([
     [1,2,3],
     [1,2,3],
     [1,2,3],
     [4,5,6],         
     ])

我如何根据第2列中的值更改第3列中的值?例如,如果第3列== 3,第2列= 9。

[[1,9,3],
 [1,9,3],
 [1,9,3],
 [4,5,6]]

我看过np.any(),但我无法弄清楚如何改变阵列。

1 个答案:

答案 0 :(得分:17)

您可以使用Numpy's slicing and indexing来实现此目的。获取第三列为3的所有行,并将每行的第二列更改为9

>>> data[data[:, 2] == 3, 1] = 9
>>> data
array([[1, 9, 3],
       [1, 9, 3],
       [1, 9, 3],
       [4, 5, 6]])