06 numpy 布爾型索引 集合運算 排序

目錄

 

一、布爾類型索引

二、集合運算

三、排序


一、布爾類型索引

import numpy as np

# 創建arr
arr = np.array([[1,2,3],[5,2,8],[1,2,3]])
print('arr = \n{}\n'.format(arr))

#獲取arr 中元素大於3的元素
A = arr[arr >= 3]
print("A = {}\n".format(A))

#獲取arr 中元素小於3的元素
B = arr[arr < 3]
print("B = {}\n".format(B))

運行結果:

arr = 
[[1 2 3]
 [5 2 8]
 [1 2 3]]

A = [3 5 8 3]

B = [1 2 2 1 2]

二、集合運算

import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 7, 8])

print('x = {}\n'.format(x))
print('y = {}\n'.format(y))

print('x 和 y 的交集: ', np.intersect1d(x, y))
print('x 和 y 的差集: ', np.setdiff1d(x, y))
print('x 和 y 的並集: ', np.union1d(x, y))

運行結果:

x = [1 2 3 4 5]

y = [2 4 6 7 8]

x 和 y 的交集:  [2 4]
x 和 y 的差集:  [1 3 5]
x 和 y 的並集:  [1 2 3 4 5 6 7 8]

三、排序

一維ndarray排序

import numpy as np

# 1到11的隨機ndarray
x = np.random.randint(1, 11, size=(10,))

print('x = {}\n'.format(x))

#對x排序, np.sort(N)方法不會改變N的順序
y = np.sort(x)
print('y = {}\n'.format(y))

#對x排序 N.sort() 會改變N的順序
x.sort()
print('排序後的x = {}\n'.format(x))

運行結果:

x = [10  6  6  5  2  6  6  4  2  1]

y = [ 1  2  2  4  5  6  6  6  6 10]

排序後的x = [ 1  2  2  4  5  6  6  6  6 10]

二維ndarray排序,我們需要在 np.sort() 函數中指定是按行排序,還是按列排序。爲此,我們可以使用關鍵字 axis

import numpy as np

# 1到11的隨機ndarray
x = np.random.randint(1, 11, size=(5,5))

print('x = {}\n'.format(x))

#按照列排序
y = np.sort(x, axis=0)
print('y = {}\n'.format(y))

#按照行排序
x.sort(axis=1)
print('排序後的x = {}\n'.format(x))

運行結果:

x = [[ 6  5  8  4  6]
 [ 1  1  9  5  3]
 [ 7 10  3 10  4]
 [ 5  1  9  6  2]
 [ 2  9 10  1  2]]

y = [[ 1  1  3  1  2]
 [ 2  1  8  4  2]
 [ 5  5  9  5  3]
 [ 6  9  9  6  4]
 [ 7 10 10 10  6]]

排序後的x = [[ 4  5  6  6  8]
 [ 1  1  3  5  9]
 [ 3  4  7 10 10]
 [ 1  2  5  6  9]
 [ 1  2  2  9 10]]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章