Python中的Numpy(5.numpy排序)
生活随笔
收集整理的這篇文章主要介紹了
Python中的Numpy(5.numpy排序)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.ndarray的排序
'''1.排序''' n1 = np.array([2, 5, 1, 7, 4]) print(n1)def sortn(nd): # 自己寫出冒泡排序的算法for i in range(nd.size):for j in range(i, nd.size):if nd[i] > nd[j]:nd[i], nd[j] = nd[j], nd[i]return ndprint(sortn(n1))'''利用numpy里面的方法 降低運算的空間復雜度和時間復雜度''' def sortnd(nd):for i in range(nd.size):# 切片 (i之后得到最小值的索引),這里用argmin()返回索引min_index = np.argmin(nd[i:])+i # 加上i,是為了讓索引對應起來nd[i],nd[min_index] = nd[min_index],nd[i] # 把最小值進行調換return nd print(sortnd(n1))'''利用sort()排序,注意兩只用法的區別''' n2 = np.random.randint(0,150,10) n2.sort() # 1.沒有返回值,直接對原數組進行排序 print(n2) # 這時候打印n2時就已經排序了 n3 = np.random.randint(0,100,10) print(n3) n3_sort = np.sort(n3) # 2.有返回值,不直接改變原數組 print(n3_sort)''' 部分排序,np.partition(a,k)a: 為要排序的數組k: 在a數組的第k個位置上的值,比這個值小的放在這個值的前面比這個值大的放在后面,如果k為負數時,同理,只不過在a原數組的最后開始數(從1開始) ''' n4 = np.random.randint(0,150,20) print(n4) n5 = np.partition(n4,6) print(n5) '''在n4數組的第6個位置上取出比它小的所有數(即進行一個切片)''' n6 = np.partition(n4,6)[:6] print(n6) '''在n4數組的第6個位置上取出比它大的所有數(即進行一個切片)''' n7 = np.partition(n4,6)[7:] print(n7)??
總結
以上是生活随笔為你收集整理的Python中的Numpy(5.numpy排序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中的Numpy(4.矩阵操作
- 下一篇: Python可视化中的Matplotli