日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

numpy基础(part13)--排序

發布時間:2023/12/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 numpy基础(part13)--排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記,這個筆記以例子為主。
開發工具:Spyder


文章目錄

    • 排序
      • 聯合間接排序lexsort
      • 復數數組排序sort_complex
      • 插入排序searchsorted


排序

我們可以簡單的,直接的對數組進行排序,并返回有序數組。

  • 語法
有序數組 = np.msort(待排序數組)
  • 例子

代碼:

import numpy as npnum = np.array([1, 7, 3, 2, 9, 5, 3]) sorted_num = np.msort(num) print('排序后數組:', sorted_num)

結果:

排序后數組: [1 2 3 3 5 7 9]

聯合間接排序lexsort

聯合間接排序支持為主序列進行排序,若存在主序列值相同,則利用次要序列1作為參考繼續排序,以此類推,最終返回排序過后的有序索引數組。

  • 語法
indices = numpy.lexsort((次要序列k,..., 次要序列1, 主序列))
  • 例子1

先按照weight排序,再按照age排序,再按照id_num排序。(都是升序排序)

代碼:

import numpy as npnames = np.array(['A', 'B', 'C', 'D', 'E', 'F', 'G'])weight = [7, 4, 3, 5, 8, 3, 4] age = [8, 7, 2, 3, 8, 3, 7] id_num = list(range(1, 8))index_num = np.lexsort((id_num, age, weight)) print(names[index_num])

結果:

['C' 'F' 'B' 'G' 'D' 'A' 'E']
  • 例子2

先按照weight升序排序,再按照age升序排序,再按照id_num降序排序。

代碼:

import numpy as npnames = np.array(['A', 'B', 'C', 'D', 'E', 'F', 'G'])weight = [7, 4, 3, 5, 8, 3, 4] age = [8, 7, 2, 3, 8, 3, 7] id_num = np.array(list(range(1, 8))) index_num = np.lexsort((-id_num, age, weight)) print(names[index_num])

備注:降序排列可以在數組前加-負號,但是要將數組轉換成ndarray數組才能進行負號運算,普通列表則不能進行此運算。

結果:

['C' 'F' 'G' 'B' 'D' 'A' 'E']

復數數組排序sort_complex

按照實部的升序排列,對于實部相同的元素,參考虛部的升序,直接返回排序后的結果數組。

  • 語法
numpy.sort_complex(復數數組)
  • 例子

代碼:

import numpy as npnum = np.array([2 + 3j, 1 + 2j, 5 + 1j,8 - 2j, 8 + 1j, 2 + 1j])sorted_num = np.sort_complex(num) print(sorted_num)

結果:

[ 1.+2.j 2.+1.j 2.+3.j 5.+1.j 8.-2.j 8.+1.j]

插入排序searchsorted

若需要向有序數組中插入元素,使數組依然有序,numpy提供了searchsorted方法,返回待插入元素的可插入位置數組。

  • 語法
indices = numpy.searchsorted(有序序列, 待插序列)
  • 例子

代碼:

import numpy as npa = np.array([1, 2, 4, 5, 7]) b = np.array([3, 6])c = np.searchsorted(a, b) print(c) d = np.insert(a, c, b) print(d)

備注:numpy提供的insert方法,可向原數組的指定位置插入元素。比如,A為原數組,B為索引數組,C為待插入元素數組。 insert(A, B, C)為向A的B位置插入C數據。

結果:

[2 4] [1 2 3 4 5 6 7]

總結

以上是生活随笔為你收集整理的numpy基础(part13)--排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。