攝影或3C

Python: 如何取得bool numpy.ndarray中, 元素==True的index? boolAry.nonzero() ; pandas.Series() 的isin() 函式

參考資料

Q1: 在numpy的argmax (argmin)指令中,如果陣列最大值(或最小值)的數字出現在兩個以上的元素,指令只會抓出其中index最小的位置。如果想要抓出所有最大值的位置,是不是有別的指令?
A = np.array([1,2,3,1])
indminA = np.argmin(A)  ← smallest index of where minimum of A occur

A1: 先找出最大/小值,用 (A==…).nonzero()找出與最大(小)值相等的所有位置:
minA = np.amin(A)
all_indminA = (A==minA).nonzero()
all_indminA[:]  ← indices of where minimum of A occur

Series也類似:

使用isin():

要取得元素 == True的index

原本要寫好幾行:

現在只要一行:

boolAry.nonzero()

輸出: (array([0, 3], dtype=int64),)

需要注意,其為長度1的tuple

boolAry.nonzero()[0] 才是array

 

pandas如何用 .iloc[bool_list] 取出判斷式為真的那一列?

如何尋找直欄中,含有特定關鍵字的列數?

pandas.Series.str.contains(“Hz”)

處理DataFrame常會用到bool_list

需要取得元素==True的index

可用.nonzero()替代

boolAry: 

想取出元素(==True的index)有點特別

boolAry.nonzero(): 

推薦hahow線上學習python: https://igrape.net/30afN

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡