On 21 January 2016 at 04:22, Ek Esawi <esaw...@gmail.com> wrote: > I have a 2D array (2000, 4);
Do you mean a numpy array? I'm going to assume that you do. > an example is given abelow. On the 1st column > I have 15 variables, on the 2nd 4 variables. Ignore column 3 for now. I > want a code that generate 4 arrays for each variable on the 1st column; > each array contains all the values from column 4. Then I want to find the > average of each array. > > For example; pick the 1st variable in column 1 which is 1; then pick the 1st > variable on the 2nd column which is 5. Now I want an array that contains > all the values on the 4th column that match variable 1 on the 1st and > variable 5 on the 2nd column. I need to get the average of each array. > > A b c d > > 1 5 3 4 > > 1 3 2 7 > > 2 5 7 5 > > 3 2 8 5 > > 2 3 2 3 I'll generate a numpy array with this data: In [1]: import numpy as np In [2]: M = np.array([[1,5,3,4],[1,3,2,7],[2,5,7,5],[3,2,8,5],[2,3,2,3]]) In [3]: M Out[3]: array([[1, 5, 3, 4], [1, 3, 2, 7], [2, 5, 7, 5], [3, 2, 8, 5], [2, 3, 2, 3]]) First we want to extract the rows where 1st and 2nd columns have 1 and 5 respectively: In [5]: M[(M[:, 0] == 1) & (M[:, 1] == 5), :] Out[5]: array([[1, 5, 3, 4]]) Then we want to get only the 4th column of that: In [7]: M[(M[:, 0] == 1) & (M[:, 1] == 5), 3] Out[7]: array([4]) And now we want the mean of that: In [8]: M[(M[:, 0] == 1) & (M[:, 1] == 5), 3].mean() Out[8]: 4.0 -- Oscar _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor