Argsort axis=1

Résolu
domxav1759 -  
 domxav1759 -

Bonjour,

Bonjour,

J'ai besoin votre aide au programme suivante

arr = np.array([[6, 8, 3], [9, 5, 7]])

arr1 = np.argsort(arr, <strong>axis=1</strong>)

print("L'indice ordre axis = 1 en 2d:\n", arr1)

son output est:

L'indice ordre axis = 1 en 2d:

[[2 0 1]

[1 2 0]]

comment il a trouvé ce output

quelqu'un peut m'expliquer s'il vous plaît

j'ai compris pour axis=0, mais pour axis=1 j'ai du mal à comprendre


Windows / Firefox 108.0

3 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour,

    si tu veux comprendre, commence par imprimer le résultat du tri.

    import numpy as np
    arr = np.array([[6, 8, 3], [9, 5, 7]])
    print("matrice:")
    print(arr)
    for i in range(2):
        arrs=np.sort(arr,axis=i)
        arr1 = np.argsort(arr, axis=i)
        print ("triée sur axe",i)
        print(arrs)
        print("index:")
        print( arr1)
    0
  2. domxav1759
     

    pour axis=1
        arrs = np.sort(arr, axis=i) # arrs [3, 6, 8], [5, 7, 9] jusqu'à la ok j ai compris
        arr1 = np.argsort(arr, axis=i) # arr1[2, 0, 1], [1, 2, 0] là comment il a trouvé ces index?

    et j'ai pas compris

    pouvez vous m'expliquer svp

    0
    1. cpadur
       

      Salut.

      Si tu pars d'une liste a :

      a = [4, 9, 3]


      Et que tu l'ordonnes pour aboutir à [3, 4, 9] cela correspond à [[a[2], a[0], a[1]]

      D'où les indices [2, 0, 1]

      0