目錄
一、布爾類型索引
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]]