Как извлечь данные только из одного столбца в массиве Numpy на основе определенного значения из отсортированного значения столбцов - PullRequest
0 голосов
/ 28 марта 2019

Я сортирую массив, состоящий из двух столбцов в порядке возрастания, а затем на основе значения, превышающего x в первом столбце, пытаюсь извлечь данные для значений> x из 2-го столбца в другой переменной.

Может сортировать и находить значения больше x в столбце 1, но не может извлекать соответствующие значения из столбца для значений> x.

a1 = np.array([130,4,8,0,87,45,24,22])
a2 = np.array([1.5615, 0.4601, 0.4374, 0.0000, 3.9871, -2.3144, -0.3456, 1.5684])

ind = np.lexsort((a2,a1)) 

[(a1[i],a2[i]) for i in ind]

r = np.array([a1[ind],a2[ind]])
r1 = sorted(x for x in r[0] if x >= 35)
print(r1)

Ожидается a3 = [-2.3144 3.9871 1.5615] для значений в a2 на основе x> 35 в a1 [45, 87,130]

1 Ответ

0 голосов
/ 28 марта 2019

Вместо доступа к значениям в r[0] вы можете вместо этого сделать что-то вроде этого:

>>> sorted([a2[ind] for ind in range(len(a1)) if a1[ind] > 35], key=lambda 
value: np.where(r[1] == value))
[-2.3144, 3.9871, 1.5615]

Это проверит значения по индексам, а затем отсортирует по индексу в r[1]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...