亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將布爾數組轉換為遞增數值數組的優雅方法是什么?

將布爾數組轉換為遞增數值數組的優雅方法是什么?

喵喵時光機 2021-12-26 14:17:48
給定以下數組:jump = array([[False, False,  True, False, False,  True]])將此數組映射到每次遇到“真”時增加 +1 的數值數組的優雅方法是什么?像這樣:[0,0,1,1,1,2].這確實有效:cat = np.zeros([6,])it = 0for i in range(0,np.shape(jumps)[0]):    if jumps[i] == True:        it = it + 1    cat[i] = it然而,此方法使用 for 循環,眾所周知,該循環比(例如)矩陣計算慢。有沒有辦法在沒有 for 循環的情況下以更優雅的方式應用此函數?
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

np.cumsum 這里似乎合適:


>>> import numpy as np

>>> np.cumsum([False, False,  True, False, False,  True])

array([0, 0, 1, 1, 1, 2], dtype=int32)

幸運的是 bool 是 int 的子類,因此以這種方式對它們進行算術運算是可能的。


查看完整回答
反對 回復 2021-12-26
  • 1 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號