I am looking for this solution using Numpy, So anyone wish to do this operation/steps with minimal code it would help me a lot.
Step 1. This is the given array arr_a=
[[0, 1.2, -0.3, 8, 3, -4],
[1.3, -0.9, 3.2, -7.2, -4.2, 5.1],
[-2.1, 3.2, -3, -0.4, 4.3, 98],
[6.1, 3.1, 4, -0.43, 2, -21],
[3.4, -9.8, 3, 4.2, -2.5, 33],
[-2.1, 4, -9, 45, 3.2, -0.30],
[3, -4.5, -5.0, -8, 5.6, -0.3]]
Step 2: I want to filter each column of array 'arr_a' with an expression '>0' it should return an array as below.
[[False, True, False, True, True, False],
[True, False, True, False, False, True],
[False, True, False, False, True, True],
[True, True, True, False, True, False],
[True, False, True, True, False, True],
[False, True, False, True, True, False],
[True, False, False, False, True, False]]
Step 3: From the above filtered array find the minimum number along the column skipping the values's which are 'False'
vector_min =
[1.3, 1.2, 3, 4.2, 2, 5.1]
Step 4:
sort them in descending order
f_ordered =
[5.1, 4.2, 3, 2, 1.3, 1.2]
Step 5: Get the indices of the columns after ordering.
index of column =
[5, 3, 2, 4, 0, 1]