一维数组排序
np.random.seed(2)
a=np.random.randn(5)
print(a)
np.argsort(a)
[-0.41675785 -0.05626683 -2.1361961 1.64027081 -1.79343559]
array([2, 4, 0, 1, 3], dtype=int64)
print(a.argsort())
[2 4 0 1 3]
二维数组排序
.argsort() 按索引排序
np.random.seed(2)
b=np.random.randn(4,3)
b.argsort(axis=0)
b.argsort(axis=1)
print("b=",b)
print(b.argsort(axis=0))
b= [[-0.41675785 -0.05626683 -2.1361961 ]
[ 1.64027081 -1.79343559 -0.84174737]
[ 0.50288142 -1.24528809 -1.05795222]
[-0.90900761 0.55145404 2.29220801]]
[[3 1 0]
[0 2 2]
[2 0 1]
[1 3 3]]
.sort() 按值排序
np.sort(b,axis=0)
array([[-0.90900761, -1.79343559, -2.1361961 ],
[-0.41675785, -1.24528809, -1.05795222],
[ 0.50288142, -0.05626683, -0.84174737],
[ 1.64027081, 0.55145404, 2.29220801]])
sorted(b,key=lambda x:x[1])
[array([ 1.64027081, -1.79343559, -0.84174737]),
array([ 0.50288142, -1.24528809, -1.05795222]),
array([-0.41675785, -0.05626683, -2.1361961 ]),
array([-0.90900761, 0.55145404, 2.29220801])]
sorted(b,key=lambda x:x[1],reverse = True)
[array([-0.90900761, 0.55145404, 2.29220801]),
array([-0.41675785, -0.05626683, -2.1361961 ]),
array([ 0.50288142, -1.24528809, -1.05795222]),
array([ 1.64027081, -1.79343559, -0.84174737])]
b.sort()
b
array([[-2.1361961 , -0.41675785, -0.05626683],
[-1.79343559, -0.84174737, 1.64027081],
[-1.24528809, -1.05795222, 0.50288142],
[-0.90900761, 0.55145404, 2.29220801]])
数组的重塑
.reshape()
np.arange(15).reshape(3,5)
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
.ravel()
a=np.array([[1,2,3],[4,5,6]])
a.ravel()
array([1, 2, 3, 4, 5, 6])
a=np.array([[1,2,3],[4,5,6]])
a.ravel()
array([1, 2, 3, 4, 5, 6])
a.ravel(order="F")
array([1, 4, 2, 5, 3, 6])
.tile()
np.tile(np.array([[1,2],[3,4]]),(3,3))
array([[1, 2, 1, 2, 1, 2],
[3, 4, 3, 4, 3, 4],
[1, 2, 1, 2, 1, 2],
[3, 4, 3, 4, 3, 4],
[1, 2, 1, 2, 1, 2],
[3, 4, 3, 4, 3, 4]])