How to replace only 1d values in 2d array after filter using numpy in python
-
wrote on 29 Oct 2014, 09:43 last edited by
Hi,
How to replace only 1d values in 2d array after filter using numpy in python without loop i.e in pythonic way.I want to filter only t2 rows and replace values in second column ( middle column ).
example:
x = np.array([['t1',10,20],['t2',11,22],['t2',12,23], ['t3',21,32]])
x
array([['t1', '10', '20'],
['t2', '11', '22'],
['t2', '12', '23'],
['t3', '21', '32']],
dtype='|S2')replace_value_for_t2_col1 = [100,101]
so expected output is
array([['t1', '10', '20'],
['t2', '100', '22'],
['t2', '101', '23'],
['t3', '21', '32']],
dtype='|S2')What i tried was,
Filter rows for t2
x[x[:,0]=='t2']
array([['t2', '11', '22'],
['t2', '12', '23']],
dtype='|S2')x[x[:,0]=='t2'][:,1] = np.array([101,102])
Seems right, but not replacing. i guess it make a copy when we slice using [:,1], so its not changing in same array.
Please suggest me any brilliant ,simple and pythonic ideas, techniques.
-
Hi,
You're currently out of the forum scope. You should rather go to a python forum for that question.
1/2