NumPy 布爾數(shù)組索引的實(shí)現(xiàn)示例
在 NumPy 中,布爾數(shù)組索引是一種強(qiáng)大的元素選擇方式,它通過 “True/False” 的邏輯判斷篩選元素。以下是具體用法及帶輸出注釋的示例代碼。
1 與原數(shù)組同形的布爾數(shù)組索引
創(chuàng)建和原數(shù)組形狀相同的布爾數(shù)組,True 表示選擇該元素,F(xiàn)alse 表示排除。
1.1 基本用法:篩選滿足條件的元素
import numpy as np
# 創(chuàng)建一個(gè)3行4列的數(shù)組(元素0-11)
a = np.arange(12).reshape(3, 4)
print("原數(shù)組a:")
print(a)
# Output:
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
# 創(chuàng)建與a同形的布爾數(shù)組:判斷a中元素是否大于4
b = a > 4
print("\n布爾數(shù)組b(a > 4的結(jié)果):")
print(b)
# Output:
# [[False False False False]
# [False True True True]
# [ True True True True]]
# 用布爾數(shù)組b索引a,提取所有True位置的元素(返回一維數(shù)組)
selected_elements = a[b]
print("\n篩選出的元素:")
print(selected_elements)
# Output: [ 5 6 7 8 9 10 11]
1.2 賦值操作:批量修改滿足條件的元素
# 繼續(xù)使用上面的數(shù)組a和布爾數(shù)組b
a[b] = 0 # 將a中所有>4的元素賦值為0
print("修改后的數(shù)組a:")
print(a)
# Output:
# [[0 1 2 3]
# [4 0 0 0]
# [0 0 0 0]]
2 按維度的一維布爾數(shù)組索引
對(duì)每個(gè)維度提供一維布爾數(shù)組(長度需與對(duì)應(yīng)維度一致),用于選擇該維度的 “切片”。
2.1 選擇某一維度的切片(以二維數(shù)組為例)
import numpy as np
a = np.arange(12).reshape(3, 4) # 3行4列,行索引0-2,列索引0-3
print("原數(shù)組a:")
print(a)
# Output:
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
# 行選擇的布爾數(shù)組:長度=行數(shù)(3),選擇第2、3行(索引1、2)
b1 = np.array([False, True, True])
# 列選擇的布爾數(shù)組:長度=列數(shù)(4),選擇第1、3列(索引0、2)
b2 = np.array([True, False, True, False])
# 選擇行(第一個(gè)維度):等價(jià)于a[b1, :]
print("\n選擇行(b1為[False, True, True]):")
print(a[b1])
# Output:
# [[ 4 5 6 7]
# [ 8 9 10 11]]
2.2 選擇列(第二個(gè)維度)
print("\n選擇列(b2為[True, False, True, False]):")
print(a[:, b2])
# Output:
# [[ 0 2]
# [ 4 6]
# [ 8 10]]
2.3 同時(shí)選擇行和列
print("\n同時(shí)選擇行和列(b1和b2結(jié)合):")
print(a[b1, b2])
# Output: [4 10]
# 解釋:b1選擇行1、2,b2選擇列0、2 → 取(1,0)和(2,2)位置的元素:4和10
到此這篇關(guān)于NumPy 布爾數(shù)組索引的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)NumPy 布爾數(shù)組索引內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Flask框架實(shí)現(xiàn)的前端RSA加密與后端Python解密功能詳解
這篇文章主要介紹了Flask框架實(shí)現(xiàn)的前端RSA加密與后端Python解密功能,結(jié)合實(shí)例形式詳細(xì)分析了flask框架前端使用jsencrypt.js加密與后端Python解密相關(guān)操作技巧,需要的朋友可以參考下2019-08-08
Python操作Office(Word/Excel/PowerPoint)文檔的功能庫使用詳解
Python提供了豐富的庫來處理?Office?文檔(Word、Excel、PowerPoint)、PDF?以及電子郵件等辦公自動(dòng)化任務(wù),下面小編就和大家詳細(xì)介紹一下它們的具體使用吧2026-03-03
Django使用Channels實(shí)現(xiàn)WebSocket的方法

