Numpy 排序和使用索引

2022-08-31 17:27:12 字數 1799 閱讀 5199

#

導包import numpy as np

x = np.arange(16)   #

array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])

#隨機打亂順序,且x順序改變

np.random.shuffle(x) #

array([13, 2, 6, 7, 11, 10, 3, 4, 8, 0, 5, 1, 9, 14, 12, 15])

np.sort(x)

x

#array([13, 2, 6, 7, 11, 10, 3, 4, 8, 0, 5, 1, 9, 14, 12, 15])

x.sort()

x

#array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])

x = np.random.randint(10, size=(4,4)) 

#每列按大小排序

np.sort(x, axis=0)

#每行按大小排序

np.sort(x, axis=1)

x = np.arange(16)

np.random.shuffle(x)

x #

array([ 5, 13, 0, 10, 2, 14, 1, 3, 11, 8, 12, 9, 7, 4, 6, 15])

np.argsort(x) #

array([ 2, 6, 4, 7, 13, 0, 14, 12, 9, 11, 3, 8, 10, 1, 5, 15],dtype=int64)

"""所得結果為打亂後資料從小到大排列的索引

"""

np.partition(x, 7)  #

array([ 1, 3, 0, 4, 2, 5, 6, 7, 8, 12, 13, 9, 11, 10, 14, 15])

"""np.partition(x,7) # 表示陣列 x 中第 7 小的元素位於排序完成陣列 x 的第 7 個位置上

然後小於該元素的位於該元素左邊,大於該元素的位於右邊,

左右兩邊沒有特別的排序要求,只要求左邊小於該元素,右邊大於該元素即可

"""

#

返回的是排序完成的元素索引陣列

np.argpartition(x, 7)

np.random.seed(10)

x = np.random.randint(10, size=(4,4))

"""array([[9, 4, 0, 1],

[9, 0, 1, 8],

[9, 0, 8, 6],

[4, 3, 0, 4]])

"""np.argsort(x, axis=1)

"""array([[2, 3, 1, 0],

[1, 2, 3, 0],

[1, 3, 2, 0],

[2, 1, 0, 3]], dtype=int64)

"""np.argpartition(x, 2, axis=1)

"""array([[2, 3, 1, 0],

[1, 2, 3, 0],

[1, 3, 2, 0],

[2, 1, 0, 3]], dtype=int64)

"""

numpy 索引多個 numpy和pandas

numpy numpy的陣列為ndarray ndarray與python列表的不同 eg 6.7.5 8.0.1.沒有 隔開,6.0表示為6.整合了c 進行運算 numpy的目的就是讓你不寫迴圈,所以效率很高 pandas 資料結構 series dataframe 索引物件 series 一組n...

numpy 索引和切片

一 取行 1 單行 陣列 index,取第index 1行 例子import numpy as np arr1 np.arange 0,24 reshape 4,6 取第2行資料 row1 arr1 1,print row1 2 連續的多行 陣列 start end 顧頭不顧尾,也可以使用步長,不過...

NumPy 切片和索引

import numpy asnp a np.arange 10,20,1 b slice 1,5,2 d a 1 5 2 e a 2 print a print a b print d print e 結果 1011 1213 1415 1617 1819 1113 1113 1213 1415 ...