Сообщение Re[4]: range-v3 и модный C++ от 26.07.2020 11:57
Изменено 26.07.2020 15:18 Ватакуси
Re[4]: range-v3 и модный C++
N>Ну, это и правда больше упражнение, благо для матриц сейчас библиотек достаточно и вряд ли кто-то решит писать сам. А необходимость поиска нескольких минимальных/максимальных элементов иногда встречается, реализации из коробки нет, вот и приходится самому думать. Что предлагают делать разработчики на Питоне? Сортировать! На втором месте уже np.argpartition, про который говорят, что он сработает за линейное время, что неверно в общем случае. И только где-то там самый быстрый алгоритм — heapq.nlargest. Хотя именно с кучей можно быстрее всего найти k-top элементов. Не хочется, чтобы С++ уходил в эту же сторону, краткость не решает.
Не читай советских газет перед обедом (с)
def kth(a, n):
m = a.shape[0]
perc = (np.arange(m-n,m)+1.0)/m*100
return np.percentile(a, perc)
Не читай советских газет перед обедом (с)
def kth(a, n):
m = a.shape[0]
perc = (np.arange(m-n,m)+1.0)/m*100
return np.percentile(a, perc)
Re[4]: range-v3 и модный C++
N>Ну, это и правда больше упражнение, благо для матриц сейчас библиотек достаточно и вряд ли кто-то решит писать сам. А необходимость поиска нескольких минимальных/максимальных элементов иногда встречается, реализации из коробки нет, вот и приходится самому думать. Что предлагают делать разработчики на Питоне? Сортировать! На втором месте уже np.argpartition, про который говорят, что он сработает за линейное время, что неверно в общем случае. И только где-то там самый быстрый алгоритм — heapq.nlargest. Хотя именно с кучей можно быстрее всего найти k-top элементов. Не хочется, чтобы С++ уходил в эту же сторону, краткость не решает.
Не читай советских газет перед обедом (с)
Не читай советских газет перед обедом (с)
def kth(a, n):
m = a.shape[0]
perc = (np.arange(m-n,m)+1.0)/m*100
return np.percentile(a, perc)