<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
排序是指以特定格式排列資料。排序演演算法指定以特定順序排列資料的方式。最常見的順序是數位或字典順序。在 Numpy 中,我們可以使用庫中提供的各種函數(如 sort、lexsort、argsort 等)執行各種排序操作。
numpy.sort(): 此函數返回陣列的排序副本。
# 匯入庫 import numpy as np # 沿第一軸排序 a = np.array([[12, 15], [10, 1]]) arr1 = np.sort(a, axis = 0) print ("Along first axis : n", arr1) # 沿最後一個軸排序 a = np.array([[10, 15], [12, 1]]) arr2 = np.sort(a, axis = -1) print ("nAlong first axis : n", arr2) a = np.array([[12, 15], [10, 1]]) arr1 = np.sort(a, axis = None) print ("nAlong none axis : n", arr1)
輸出 :
Along first axis :
[[10 1]
[12 15]]
Along first axis :
[[10 15]
[ 1 12]]
Along none axis :
[ 1 10 12 15]
numpy.argsort(): 此函數返回將對陣列進行排序的索引。
# 演示 numpy.argsort 工作的 Python 程式碼 import numpy as np # 已建立 Numpy 陣列 a = np.array([9, 3, 1, 7, 4, 3, 6]) # 未排序的陣列列印 print('Original array:n', a) # 排序陣列索引 b = np.argsort(a) print('Sorted indices of original array->', b) # 要使用排序索引獲取排序陣列 c 是由與 b 相同的 len 建立的臨時陣列 c = np.zeros(len(b), dtype = int) for i in range(0, len(b)): c[i]= a[b[i]] print('Sorted array->', c)
在 IDE 上執行
輸出:
Original array:
[9 3 1 7 4 3 6]
Sorted indices of original array-> [2 1 5 4 6 3 0]
Sorted array-> [1 3 3 4 6 7 9]
numpy.lexsort(): 此函數使用一系列鍵返回間接穩定排序。
# 演示 numpy.lexsort() 工作的 Python 程式碼 import numpy as np # numpy陣列建立第一列 a = np.array([9, 3, 1, 3, 4, 3, 6]) # 第二欄 b = np.array([4, 6, 9, 2, 1, 8, 7]) print('column a, column b') for (i, j) in zip(a, b): print(i, ' ', j) # 按 a 然後按 b 排序 ind = np.lexsort((b, a)) print('Sorted indices->', ind)
輸出 :
column a, column b
9 4
3 6
1 9
3 2
4 1
3 8
6 7
Sorted indices-> [2 3 1 5 4 6 0]
功能 | 描述 |
---|---|
numpy.ndarray.sort() | 就地對陣列進行排序。 |
numpy.msort() | 返回沿第一個軸排序的陣列的副本。 |
numpy.sort_complex() | 首先使用實部對複數陣列進行排序,然後使用虛部。 |
numpy.partition() | 返回陣列的分割區副本。 |
numpy.argpartition() | 使用 kind 關鍵字指定的演演算法沿給定軸執行間接分割區。 |
搜尋是一種操作或技術,可幫助查詢給定元素或值在列表中的位置。根據是否找到正在搜尋的元素,任何搜尋都被稱為成功或不成功。在 Numpy 中,我們可以使用庫中提供的各種函數(如 argmax、argmin、nanaargmax 等)執行各種搜尋操作。
numpy.argmax(): 此函數返回特定軸中陣列的最大元素的索引。
# 說明 argmax() 工作的 Python 程式 import numpy as geek # 處理二維陣列 array = geek.arange(12).reshape(3, 4) print("INPUT ARRAY : n", array) # 沒有提到軸,所以適用於整個陣列 print("nMax element : ", geek.argmax(array)) # 根據索引返回最大元素的索引 print(("nIndices of Max element : " , geek.argmax(array, axis=0))) print(("nIndices of Max element : " , geek.argmax(array, axis=1)))
輸出 :
INPUT ARRAY :
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
Max element : 11
Indices of Max element : [2 2 2 2]
Indices of Max element : [3 3 3]
numpy.nanargmax(): 此函數返回忽略 NaN 的特定軸中陣列的最大元素的索引。如果切片僅包含 NaN 和 Infs,則結果不可信。
# 說明 nanargmax() 工作的 Python 程式 import numpy as geek # 處理一維陣列 array = [geek.nan, 4, 2, 3, 1] print("INPUT ARRAY 1 : n", array) array2 = geek.array([[geek.nan, 4], [1, 3]]) # 根據忽略 NaN 的索引返回最大元素的索引 print(("nIndices of max in array1 : " , geek.nanargmax(array))) # 處理二維陣列 print("nINPUT ARRAY 2 : n", array2) print(("nIndices of max in array2 : " , geek.nanargmax(array2))) print(("nIndices at axis 1 of array2 : " , geek.nanargmax(array2, axis = 1)))
輸出 :
INPUT ARRAY 1 :
[nan, 4, 2, 3, 1]
Indices of max in array1 : 1
INPUT ARRAY 2 :
[[ nan 4.]
[ 1. 3.]]
Indices of max in array2 : 1
Indices at axis 1 of array2 : [1 1]
numpy.argmin(): 此函數返回沿軸的最小值的索引。
# 說明 argmin() 工作的 Python 程式 import numpy as geek # 處理一維陣列 array = geek.arange(8) print("INPUT ARRAY : n", array) # 根據索引返回 min 元素的索引 print("nIndices of min element : ", geek.argmin(array, axis=0))
在 IDE 上執行
輸出 :
INPUT ARRAY :
[0 1 2 3 4 5 6 7]
Indices of min element : 0
功能 | 描述 |
---|---|
numpy.nanargmin() | 返回指定軸中最小值的索引,忽略 NaN。 |
numpy.argwhere() | 查詢按元素分組的非零陣列元素的索引。 |
numpy.nonzero() | 返回非零元素的索引。 |
numpy.flatnonzero() | 在 a 的扁平化版本中返回非零索引。 |
numpy.where() | 根據條件返回從 x 或 y 中選擇的元素。 |
numpy.searchsorted() | 查詢應插入元素以保持順序的索引。 |
numpy.extract() | 返回滿足某個條件的陣列元素。 |
numpy.count_nonzero() :計算陣列中非零值的數量。
# 說明 count_nonzero() 工作的 Python 程式 import numpy as np # 計算多個非零值 a = np.count_nonzero([[0,1,7,0,0],[3,0,0,2,19]]) b = np.count_nonzero(([[0,1,7,0,0],[3,0,0,2,19]] , axis=0)) print("Number of nonzero values is :",a) print("Number of nonzero values is :",b)
在 IDE 上執行
輸出 :
Number of nonzero values is : 5
Number of nonzero values is : [1, 1, 1, 1, 1]
到此這篇關於Python Numpy教學之排序,搜尋和計數詳解的文章就介紹到這了,更多相關Python Numpy內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45