не ведет себя так же, как реализация в numpy PR в тех случаях, когда это условие не выполняется.

numpy.argsortменты государства

Возвращает:
index_array: ndarray, int Массив индексов, которые сортируют по указанной оси. Если одномерный,a[index_array] дает отсортированный.

Как я могу применить результатnumpy.argsort для многомерного массива вернуть отсортированный массив? (НЕ только 1-D или 2-D массив; это может быть N-мерный массив, где N известен только во время выполнения)

>>> import numpy as np
>>> np.random.seed(123)
>>> A = np.random.randn(3,2)
>>> A
array([[-1.0856306 ,  0.99734545],
       [ 0.2829785 , -1.50629471],
       [-0.57860025,  1.65143654]])
>>> i=np.argsort(A,axis=-1)
>>> A[i]
array([[[-1.0856306 ,  0.99734545],
        [ 0.2829785 , -1.50629471]],

       [[ 0.2829785 , -1.50629471],
        [-1.0856306 ,  0.99734545]],

       [[-1.0856306 ,  0.99734545],
        [ 0.2829785 , -1.50629471]]])

Для меня это не просто вопрос использованияsort() вместо; У меня есть другой массивB и я хочу заказатьB используя результатыnp.argsort(A) вдоль соответствующей оси. Рассмотрим следующий пример:

>>> A = np.array([[3,2,1],[4,0,6]])
>>> B = np.array([[3,1,4],[1,5,9]])
>>> i = np.argsort(A,axis=-1)
>>> BsortA = ???             
# should result in [[4,1,3],[5,1,9]]
# so that corresponding elements of B and sort(A) stay together

Похоже, эта функциональностьуже запрос на улучшение в NumPy.

Ответы на вопрос(3)

Ваш ответ на вопрос