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

