Numpy где с индексами вместе со значениями - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть массив

import numpy as np
t = np.array([[1,2,3],
 [2,3,4],
 [5,6,7],
 [8,9,1]])

Мне нужны индексы массива, где значение больше 5 вместе с фактическими значениями. Как показано ниже:

[[(2, 1),6], [(2, 2),7], [(3, 0),8], [(3, 1),9]]

Я пробовал ниже:

result = np.where(t>5)
list(zip(result[0], result[1]))

Это дает мне только индексы

[(2, 1), (2, 2), (3, 0), (3, 1)]

Любой указатель?

1 Ответ

0 голосов
/ 15 февраля 2020

просто инкапсулирует свой pandas фрейм данных, так как pandas помечен, вы также можете попробовать;

#df  = pd.DataFrame(t) 
[*df.where(df.gt(5)).stack().to_dict().items()]

Вывод:

[((2, 1), 6.0), ((2, 2), 7.0), ((3, 0), 8.0), ((3, 1), 9.0)]

Или;

[*map(list,df.where(df.gt(5)).stack().to_dict().items())]

Выход:

[[(2, 1), 6.0], [(2, 2), 7.0], [(3, 0), 8.0], [(3, 1), 9.0]]
...