Python的NumPy使用之?dāng)?shù)組過濾
數(shù)組過濾
從現(xiàn)有數(shù)組中取出一些元素并從中創(chuàng)建新數(shù)組稱為過濾(filtering)。
在 NumPy 中,我們使用布爾索引列表來過濾數(shù)組。
布爾索引列表是與數(shù)組中的索引相對應(yīng)的布爾值列表。
如果索引處的值為 True,則該元素包含在過濾后的數(shù)組中;如果索引處的值為 False,則該元素將從過濾后的數(shù)組中排除。
實(shí)例
用索引 0 和 2、4 上的元素創(chuàng)建一個(gè)數(shù)組:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) x = [True, False, True, False, True] newarr = arr[x] print(newarr)
運(yùn)行實(shí)例

上例將返回 [61, 63, 65],為什么?
因?yàn)樾逻^濾器僅包含過濾器數(shù)組有值 True 的值,所以在這種情況下,索引為 0 和 2、4。
創(chuàng)建過濾器數(shù)組
在上例中,我們對 True 和 False 值進(jìn)行了硬編碼,但通常的用途是根據(jù)條件創(chuàng)建過濾器數(shù)組。
實(shí)例
創(chuàng)建一個(gè)僅返回大于 62 的值的過濾器數(shù)組:
import numpy as np
arr = np.array([61, 62, 63, 64, 65])
# 創(chuàng)建一個(gè)空列表
filter_arr = []
# 遍歷 arr 中的每個(gè)元素
for element in arr:
# 如果元素大于 62,則將值設(shè)置為 True,否則為 False:
if element > 62:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)運(yùn)行實(shí)例

實(shí)例
創(chuàng)建一個(gè)過濾器數(shù)組,該數(shù)組僅返回原始數(shù)組中的偶數(shù)元素:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
# 創(chuàng)建一個(gè)空列表
filter_arr = []
# 遍歷 arr 中的每個(gè)元素
for element in arr:
# 如果元素可以被 2 整除,則將值設(shè)置為 True,否則設(shè)置為 False
if element % 2 == 0:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)運(yùn)行實(shí)例

直接從數(shù)組創(chuàng)建過濾器
上例是 NumPy 中非常常見的任務(wù),NumPy 提供了解決該問題的好方法。
我們可以在條件中直接替換數(shù)組而不是 iterable 變量,它會如我們期望地那樣工作。
實(shí)例
創(chuàng)建一個(gè)僅返回大于 62 的值的過濾器數(shù)組:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) filter_arr = arr > 62 newarr = arr[filter_arr] print(filter_arr) print(newarr)
運(yùn)行實(shí)例

實(shí)例
創(chuàng)建一個(gè)過濾器數(shù)組,該數(shù)組僅返回原始數(shù)組中的偶數(shù)元素:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) filter_arr = arr % 2 == 0 newarr = arr[filter_arr] print(filter_arr) print(newarr)
運(yùn)行實(shí)例

到此這篇關(guān)于Python的NumPy使用之?dāng)?shù)組過濾的文章就介紹到這了,更多相關(guān)NumPy數(shù)組過濾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pygame實(shí)現(xiàn)簡易版趣味小游戲之反彈球
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡易版趣味反彈球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
基于python實(shí)現(xiàn)監(jiān)聽Rabbitmq系統(tǒng)日志代碼示例
這篇文章主要介紹了基于python實(shí)現(xiàn)監(jiān)聽Rabbitmq系統(tǒng)日志代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
macbook安裝環(huán)境chatglm2-6b的詳細(xì)過程
這篇文章主要介紹了macbook安裝chatglm2-6b的過程詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
使用pipenv管理python虛擬環(huán)境的全過程
pipenv 是Kenneth Reitz大神的作品,能夠有效管理Python多個(gè)環(huán)境,各種包,接下來通過本文給大家分享使用pipenv管理python虛擬環(huán)境的全過程,感興趣的朋友一起看看吧2021-09-09
Python中使用logging和traceback模塊記錄日志和跟蹤異常
今天小編就為大家分享一篇關(guān)于Python中使用logging和traceback模塊記錄日志和跟蹤異常,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04

