У меня есть большой массив с примерно 49 миллионами элементов (7000 * 7000), и там мне нужно найти самые большие N элементов и их индексы, игнорирующие все NaN. Я не могу удалить эти NaN заранее, потому что мне нужны значения индекса самых больших N элементов из первого массива, чтобы извлечь данные из другого, у которого есть NaN в разных индексах по сравнению с первым массивом. Я пытался
np.argpartition(first_array, -N)[-N:]
это работает очень хорошо для массива без NaN, но если есть NaN, то Nan будут самым большим элементом, потому что в питоне это считается бесконечностью.
x = np.array([np.nan, 2, -1, 2, -4, -8, -9, 6, -3]).reshape(3, 3)
y = np.argpartition(x.ravel() , -3)[-3:]
z = x.ravel()[y]
# this is the result I am getting === [2, 6, nan]
# but I need this ==== [2, 2, 6]