Numpy: argsort рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдордИ 2014  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
a = np.random.random([5,5])
ind = np.argsort(a,axis=1)
a_sorted = рдПрдХ [рдЗрдВрдб]
рдПрдирдкреА.рд╕реЙрд░реНрдЯ (рдП, рдЕрдХреНрд╖ = 1)

рдЕрдм a_sorted рдФрд░ a рджреЛрдиреЛрдВ рдХреЛ 1-рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЕрдм рдЖрдХреГрддрд┐рдпрд╛рдБ рднреА рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИрдВред a рдЕрднреА рднреА (5,5) рд╣реИ рдЬрдмрдХрд┐ a_sorted (5,5,5) рд╣реИред рдЕрдЧрд░ рдпрд╣ рдЗрд░рд╛рджрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдПрдирдбреА рд╕рд░рдгреА рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдерд╛ред

рдпрд╣ рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ a[np.arange(np.shape(a)[0])[:,np.newaxis], np.argsort(a)] рд╕реЗ рдЕрдзрд┐рдХ рдкрдардиреАрдп рд╕рдорд╛рдзрд╛рди рд╣реЛ

рд╕рднреА 12 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

argsort() рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреБрдХреНрд░рдордг рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдк рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#advanced -indexing

рдпреЗ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:

a = np.random.random([5,5])
i = np.arange(len(a))[:, np.newaxis]
j = np.argsort(a, axis=1)
a_sorted = a[i, j]
np.sort(a, axis=1)

рдореИрдВ рдЙрд╕реА рддрд░рд╣ рдЙрд▓рдЭрд╛ рд╣реБрдЖ рдерд╛ред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрддрд╛рддрд╛ рд╣реИ,

рд░рд┐рдЯрд░реНрди
index_array : ndarray, int
рдЗрдВрдбреЗрдХреНрд╕ рдХреА рд╕рд░рдгреА рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде a рд╕реЙрд░реНрдЯ рдХрд░рддреА рд╣реИред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, a[index_array] рдПрдХ рдХреНрд░рдордмрджреНрдз a рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рдЬреЛ рдХреЗрд╡рд▓ 1D рд╕рд░рдгреА рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдХреНрдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдПрдирдбреА рд╕рд░рдгреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ?

@lzkelley рд╣рд╛рдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рдХрд╛ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реЛрдЧрд╛ред

@ рд╢реЙрдпрд░ рдХреВрд▓, рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдПрдирдбреА рд╕рд░рдгреА рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдерд╛ред

рдпрд╣ рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ a[np.arange(np.shape(a)[0])[:,np.newaxis], np.argsort(a)] рд╕реЗ рдЕрдзрд┐рдХ рдкрдардиреАрдп рд╕рдорд╛рдзрд╛рди рд╣реЛ

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ @seberg рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдиреБрдХреНрд░рдордг рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рд╡рд░реНрдзрди рдореЗрдВ рд╕реЗ рдПрдХ рдмрдирд╛ рд╕рдХреЗред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреНрд░рдордг рдХреЛ рдлрд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдкрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рддреЛ рд╢рд╛рдпрдж рдПрдХ рдЖрд╕рд╛рди рдореИрдЪ рд╣реИред

рдПрдХ рдирдП рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд▓рд┐рдП +1ред

рдХреНрдпрд╛ argsort (рдЬреИрд╕рд╛ рдХрд┐ sort ) рдХрд╛ рд╕рдВрдкреВрд░реНрдг рдЙрджреНрджреЗрд╢реНрдп рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ?

argsort рдПрдХ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд▓рдЧрддрд╛ рд╣реИред рдЬрдм рддрдХ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рди рд╣реЛ, рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред

рдПрдХ рдкрд┐рдХ рдлрдВрдХреНрд╢рди рдпрд╛ рддреЛ рд╢рд╛рдпрдж рдПрдХ рдЖрд╕рд╛рди рдореИрдЪ рд╣реИред

рдпрд╣ #8708 . рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

qualiaa picture qualiaa  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

marcocaccin picture marcocaccin  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kevinzhai80 picture kevinzhai80  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Kreol64 picture Kreol64  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

astrofrog picture astrofrog  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ