λ€μ μ½λλ₯Ό κ³ λ €νμμμ€.
a = np.random.random([5,5])
ind = np.argsort(a, μΆ=1)
a_sorted = a[ind]
np.sort(a, μΆ=1)
μ΄μ a_sorted λ° a λ λ€ 1μΆμ λ°λΌ μ λ ¬λμ΄μΌ ν©λλ€. κ·Έλ¬λ λͺ¨μμ‘°μ°¨ λ μ΄μ λμΌνμ§ μμ΅λλ€. a_sortedλ (5,5,5)μ΄κ³ μ¬μ ν (5,5)μ λλ€. μ΄κ²μ΄ μλ λ νλμ΄λΌλ©΄ λκ΅°κ° μ΄μ λ₯Ό λ§ν΄ μ€ μ μμ΅λκΉ?
argsort()
μ΄(κ°) μ λλ‘ μλνμ§λ§ μΈλ±μ±μ΄ μμλλ‘ μλνμ§ μμ΅λλ€.
http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#advanced - μΈλ±μ±
μ΄ μλ:
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 λ°°μ΄μλ§ μ μ©λ©λλ€. μ΄κ²μ΄ ND μ΄λ μ΄μ κ²½μ°κ° μλμ λͺ μνλλ‘ λ¬Έμλ₯Ό νμ₯ν΄μΌ ν©λκΉ?
@lzkelley μ, λ¬Έμλ₯Ό κ°μ νκΈ° μν ν¨μΉλ λ§€μ° νμν κ²μ λλ€.
@shoyer μΏ¨, ν보νκ³ μ λ°μ΄νΈ νκ² μ΅λλ€
μ€μ λ‘ μΆλ ₯μ μ¬μ©νμ¬ ND λ°°μ΄μ μ λ ¬νλ λ°©λ²μ λν μκ° μμΌλ©΄ μ’μ κ²μ λλ€.
a[np.arange(np.shape(a)[0])[:,np.newaxis], np.argsort(a)]
λ³΄λ€ λ μ½κΈ° μ¬μ΄ μ루μ
μ΄ μμΌλ©΄ μ’μ κ²μ
λλ€.
@seberg κ° μΆκ°ν μμΈ κΈ°λ₯ μ€ νλλ‘ λ§λ€ μλ μμ΅λλ€.
λλ κ·Έκ²μ΄ μΈλ±μ±μ λ§€μ° λΆλͺ νκ² λ§μ§ μλλ€κ³ μκ°ν©λλ€. μ ν κΈ°λ₯ μ λλ μλ§λ λ μ¬μ΄ μΌμΉμΌ κ²μ λλ€.
μ κΈ°λ₯μ κ²½μ° +1μ λλ€.
argsort
( sort
)μ μ 체 λͺ©μ μ΄ μΈλ±μ±μ μ¬μ©λμ§ μμ΅λκΉ?
argsort
λ μΆμ λ°λΌ μ λ ¬ν μΈλ±μ€λ₯Ό μ 곡νμ§λ§ μ€μ λ‘ μΈλ±μ€λ₯Ό μ¬μ©νμ¬ ν΄λΉ μΆμ λ°λΌ μ λ ¬νλ κ²μ λΆνμνκ² μ₯ν©νκ² λ³΄μ
λλ€. λ΄κ° λͺ¨λ₯΄λ λ κ°λ¨ν λ°©λ²μ΄ μλ€λ©΄.
pick ν¨μ μ λκ° μλ§λ λ μ¬μ΄ μΌμΉμΌ κ²μ λλ€.
#8708μ λλ€.
κ°μ₯ μ μ©ν λκΈ
μ€μ λ‘ μΆλ ₯μ μ¬μ©νμ¬ ND λ°°μ΄μ μ λ ¬νλ λ°©λ²μ λν μκ° μμΌλ©΄ μ’μ κ²μ λλ€.
a[np.arange(np.shape(a)[0])[:,np.newaxis], np.argsort(a)]
λ³΄λ€ λ μ½κΈ° μ¬μ΄ μ루μ μ΄ μμΌλ©΄ μ’μ κ²μ λλ€.