numpy布林型索引

2021-07-31 20:10:49 字數 1931 閱讀 2328

先建立乙個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」的比較運算將會產生乙個布林型陣列:

>>> names==」bob」

array([ true, false, false,  true, false, false, false], dtype=bool)

2.將這個布林型陣列用於陣列索引:

>>> data[names==」bob」]

array([[ 0.10298484, -0.25113445, -0.78464202, -0.54631363],

[ 0.28620158,  0.1481723 , -1.27040048,  0.29133364]])

3.將布林型陣列跟切片混合使用:

>>> data[names==」bob」,2:]

array([[-0.78464202, -0.54631363],

[-1.27040048,  0.29133364]])

4.也可用不等號(!=),負號對條件進行操作:

>>> names!=」bob」

array([false,  true,  true, false,  true,  true,  true], dtype=bool)

>>> data[-(names==」bob」)]

array([[-0.46722746, -0.4769322 ,  0.94609687,  0.51213101],

[-1.34277909,  0.76173316, -0.8811425 , -0.88740766],

[-0.17423198,  0.46599401,  0.21391178,  0.09850381],

[-0.37063907, -0.88720874,  0.85973078,  1.22438856],

[ 0.67792587,  0.259653  ,  1.11855236,  1.50720749]])

5.多種條件組合(&,|等)

>>> data[(names==」bob」)|(names==」will」)]

array([[ 0.10298484, -0.25113445, -0.78464202, -0.54631363],

[-1.34277909,  0.76173316, -0.8811425 , -0.88740766],

[ 0.28620158,  0.1481723 , -1.27040048,  0.29133364],

[-0.17423198,  0.46599401,  0.21391178,  0.09850381]])

6.為了將data中的所有負值都設定為0,只需:

>>> data[data<0]=0

>>> data

array([[ 0.10298484,  0.        ,  0.        ,  0.        ],

[ 0.        ,  0.        ,  0.94609687,  0.51213101],

[ 0.        ,  0.76173316,  0.        ,  0.        ],

[ 0.28620158,  0.1481723 ,  0.        ,  0.29133364],

[ 0.        ,  0.46599401,  0.21391178,  0.09850381],

[ 0.        ,  0.        ,  0.85973078,  1.22438856],

[ 0.67792587,  0.259653  ,  1.11855236,  1.50720749]])

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和字串 ...

Python筆記 NumPy中的布林型索引使用舉例

import numpy as np 建立乙個 3 x 3 的 ndarray 包含從 0 到 8 的整數 x np.arange 9 reshape 3,3 print 初始的 x n x 選擇在x中大於5的元素 print 選擇在x中大於5的元素 x x 5 選擇在x中 小於等於3 的元素 pr...

Numpy布林陣列索引

布林陣列索引 布林陣列索引允許選擇陣列的任意元素。通常,這種型別的索引用於選擇滿足某些條件的陣列元素。下面是乙個例子 import numpy as np a np.array 1,2 3,4 5,6 找出a中大於2的元素 這將返回乙個與a相同形狀的布林值的numpy陣列,其中的bool idx的每...