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

2021-09-25 05:43:16 字數 2333 閱讀 3308

目錄

一、布林型別索引

二、集合運算

三、排序

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]]

numpy布林型索引

先建立乙個names一維陣列,再用numpy.random中的randn函式生成乙個7 4陣列 names np.array bob joe will bob will joe joe data np.random.randn 7,4 1.對names和字串 bob 的比較運算將會產生乙個布林型陣列...

06 numpy 陣列的索引切片和遍歷

和python裡的列表類似,numpy裡的ndarray也支援索引和下標運算元據。na np.arange 10 print na 2 10 print na 6 2 print na 5 2 print na 1 b np.random.randint 3,21,size 5,4,6 print ...

numpy中的布林型索引

內容來自 利用python進行資料分析 先建立乙個names一維陣列,再用numpy.random中的randn函式生成乙個7 4陣列 names np.array bob joe will bob will joe joe data np.random.randn 7,4 1.對names和字串 ...