NumPy 布爾數(shù)組索引的實現(xiàn)示例
在 NumPy 中,布爾數(shù)組索引是一種強大的元素選擇方式,它通過 “True/False” 的邏輯判斷篩選元素。以下是具體用法及帶輸出注釋的示例代碼。
1 與原數(shù)組同形的布爾數(shù)組索引
創(chuàng)建和原數(shù)組形狀相同的布爾數(shù)組,True 表示選擇該元素,F(xiàn)alse 表示排除。
1.1 基本用法:篩選滿足條件的元素
import numpy as np
# 創(chuàng)建一個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的結果):")
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ù)組索引
對每個維度提供一維布爾數(shù)組(長度需與對應維度一致),用于選擇該維度的 “切片”。
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])
# 選擇行(第一個維度):等價于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 布爾數(shù)組索引的實現(xiàn)示例的文章就介紹到這了,更多相關NumPy 布爾數(shù)組索引內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實現(xiàn)刪除當前目錄下除當前腳本以外的文件和文件夾實例
這篇文章主要介紹了Python實現(xiàn)刪除當前目錄下除當前腳本以外的文件和文件夾的方法,涉及Python針對目錄及文件的刪除技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
基于Python?pathlib庫的路徑/文件/目錄常用操作
pathlib 模塊提供了文件路徑對象抽象,不僅僅是替換os.path模塊對文件的操作,可以說是路徑處理的好手,這篇文章主要介紹了基于Python?pathlib庫的路徑/文件/目錄常用操作的相關資料,需要的朋友可以參考下2025-12-12
Django REST框架創(chuàng)建一個簡單的Api實例講解
在本篇文章里小編給大家整理的是關于Django REST框架創(chuàng)建一個簡單的Api實例講解,有需要的朋友們可以學習下。2019-11-11
Python?selenium?find_element()示例詳解
selenium定位元素的函數(shù)/方法可以分為兩類:find_element及find_elements,下面這篇文章主要給大家介紹了關于Python?selenium?find_element()的相關資料,需要的朋友可以參考下2022-07-07
局域網內python socket實現(xiàn)windows與linux間的消息傳送
這篇文章主要介紹了局域網內python socket實現(xiàn)windows與linux間的消息傳送的相關知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04

