Python数据分析基础与应用电子活页3-31实现NumPy数组的排序操作.docx
Python数据分析基础与应用
模块
PAGE2
PAGE21
电子活页3-31实现NumPy数组的排序操作
【技能训练3-44】实现NumPy数组的排序操作
【训练要求】
在JupyterNotebook开发环境中创建j3-44.ipynb,然后编写代码实现NumPy数组的排序操作。
【实施过程】
(1)使用numpy.sort()函数对数组进行排序
代码如下:
importnumpyasnp
array1=np.array([[3,7],[9,1]])
print(array1数组:)
print(array1)
#调用sort()函数对数组进行排序
print(np.sort(array1))
#按列排序
print(np.sort(array1,axis=0))
print(array2数组:)
#设置在sort()函数中的排序字段
dt=np.dtype([(name,S10),(age,int)])
array2=np.array([(xiangdong,21),(xiangxi,24),(xiangbei,19),
(xiangnan,20)],dtype=dt)
#输出array2数组
print(array2)
#按name字段排序
print(np.sort(array2,order=name))
输出结果:
array1数组:
[[37]
[91]]
#按行排序
[[37]
[19]]
#按列排序
[[31]
[97]]
array2数组:
[(bxiangdong,21)(bxiangxi,24)(bxiangbei,19)(bxiangnan,20)]
[(bxiangbei,19)(bxiangdong,21)(bxiangnan,20)(bxiangxi,24)]
(2)使用numpy.argsort()函数沿着指定的轴对数组的元素值进行排序
代码如下:
importnumpyasnp
array1=np.array([90,29,89,12])
print(原数组:\n,array1)
sort_ind=np.argsort(array1)
print(输出排序元素索引值,sort_ind)
#使用索引数组对原数组进行排序
sort_a=array1[sort_ind]
print(输出排序数组:)
foriinsort_ind:
print(array1[i],end=)
输出结果:
原数组:
[90298912]
输出排序元素索引值:[3120]
输出排序数组:
12298990
(3)使用numpy.lexsort()函数按键序列对数组进行排序
代码如下:
importnumpyasnp
array1=np.array([a,b,c,d,e])
array2=np.array([45,90,360,45,180])
array3=np.lexsort((array1,array2))
#输出排序元素的索引数组array3
print(array3)
#使用索引数组对原数组进行排序
foriinarray3:
print(array1[i],array2[i])
输出结果:
#输出排序元素的索引数组array3
[03142]
#使用索引数组对原数组进行排序
a45
d45
b90
e180
c360