I am trying to do some computations for a numpy array by python3.
the array:
c0 c1 c2 c3 r0 1 5 2 7 r1 3 9 4 6 r2 8 2 1 3 Here the "cx" and "rx" are column and row names.
I need to compute the difference of each element by row if the elements are not in a given column list.
e.g.
given a column list [0, 2, 1] # they are column indices which means that for r0, we need to calculate the difference between the c0 and all other columns, so we have [1, 5-1, 2-1, 7-1] for r1, we need to calculate the difference between the c2 and all other columns, so we have [3-4, 9-4, 4, 6-4] for r2, we need to calculate the difference between the c1 and all other columns, so we have [8-2, 2, 1-2, 3-2] so, the result should be
1 4 1 6 -1 5 4 2 6 2 -1 1 Because the array could be very large, I would like to do the calculation by numpy vectorized operation, e.g. broadcasting.
BuT, I am not sure how to do it efficiently.
I have checked Vectorizing operation on numpy array, Vectorizing a Numpy slice operation, Vectorize large NumPy multiplication, Replace For Loop with Numpy Vectorized Operation, Vectorize numpy array for loop.
But, none of them work for me.
thanks for any help !