简体   繁体   中英

How to replace values in a numpy array based on another column?

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.

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]])

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM