TASK05 排序搜尋計數及集合操作

2021-10-10 03:37:10 字數 2020 閱讀 6702

一、排序

引數axis=0,按列排列,axis=1,按行排列。

np.random.seed(20201031)

a=np.random.rand(3,3)*10

a=np.around(a,2)

print(a)

b=np.sort(a,axis=1)

print(b)

c=np.sort(a,axis=0)

print(c)

d=np.sort(a)

print(d)

[[6.87 1.3  5.09]

[3.39 1.71 7.47]

[9.22 5.48 4.55]]

[[1.3 5.09 6.87]

[1.71 3.39 7.47]

[4.55 5.48 9.22]]

[[3.39 1.3 4.55]

[6.87 1.71 5.09]

[9.22 5.48 7.47]]

[[1.3 5.09 6.87]

[1.71 3.39 7.47]

[4.55 5.48 9.22]]

不設定axis引數,則預設按行排序。

引數order

tp = np.dtype([('name', 's10'), ('age', np.int)])

a = np.array([("dawang", 21), ("yiyi", 18)], dtype=tp)

b = np.sort(a, order='name')

print(b)

c = np.sort(a, order='age')

print(c)

[(b'dawang', 21) (b'yiyi', 18)]

[(b'yiyi', 18) (b'dawang', 21)]

用元素的索引位置替代排序後的實際結果

一維陣列

np.random.seed(20201028)

x = np.random.randint(0, 10, 10)

print(x)

y = np.argsort(x)

print(y)

print(x[y])

z= np.argsort(-x)

print(z)

print(x[z])

[5 5 1 8 9 1 7 9 5 6]

[2 5 0 1 8 9 6 3 4 7]

[1 1 5 5 5 6 7 8 9 9]

[4 7 3 6 9 0 1 8 2 5]

[9 9 8 7 6 5 5 5 1 1]

二維陣列

np.random.seed(20201028)

x = np.random.rand(3, 3) * 10

x = np.around(x, 2)

print(x)

y = np.argsort(x, axis=0) # axis=0,按列排序

print(y)

y = np.argsort(x, axis=1) # axis=1,按行排序

print(y)

z = np.array([np.take(x[i], np.argsort(x[i])) for i in range(3)])

print(z)

[[3.55 1.02 8.3 ]

[5.16 3.54 0.77]

[0.86 6.71 5.53]]

[[2 0 1]

[0 1 2]

[1 2 0]]

[[1 0 2]

[2 1 0]

[0 2 1]]

[[1.02 3.55 8.3 ]

[0.77 3.54 5.16]

[0.86 5.53 6.71]]

TASK05結構陣列

結構陣列與單元陣列的轉換 單元陣列的處理 實戰演練 總結思考 a.b c a為結構陣列名,b為欄位名,c為此欄位的內容 如果使用結構陣列函式建立,則書寫格式為 array name struct field1 val1,field2 val2,array name為結構陣列名,field為欄位名,v...

pandas學習 Task05合併

問題二 merge ordered和merge asof的作用是什麼?和merge是什麼關係?merge ordered 根據官方說明,適用與帶時間序列的資料,自帶ffill bfill 引數,可以方便填充 merge asof 模糊匹配版的merge 問題三 請構造乙個多級索引與多級索引合併的例子...

天池語義分割task05

乙個成熟合格的深度學習訓練流程至少具備以下功能 在訓練集上進行訓練,並在驗證集上進行驗證 模型可以儲存最優的權重,並讀取權重 記錄下訓練集和驗證集的精度,便於調參。一 學習目標 理解驗證集的作用,並使用訓練集和驗證集完成訓練 學會使用 pytorch 環境下的模型讀取和載入,並了解調參流程 二 構造...