问题
Let say i have the following:
import numpy as np
data = np.array([
[1,2,3],
[1,2,3],
[1,2,3],
[4,5,6],
])
How would I go about changing values in column 3 based on values in column 2? For instance, If column 3 == 3, column 2 = 9.
[[1,9,3],
[1,9,3],
[1,9,3],
[4,5,6]]
I've looked at np.any()
, but I can't figure out how to alter the array in place.
回答1:
You can use Numpy's slicing and indexing to achieve this. Take all the rows where the third column is 3
, and change the second column of each of those rows to 9
:
>>> data[data[:, 2] == 3, 1] = 9
>>> data
array([[1, 9, 3],
[1, 9, 3],
[1, 9, 3],
[4, 5, 6]])
来源:https://stackoverflow.com/questions/20355311/how-to-replace-values-in-a-numpy-array-based-on-another-column