为了账号安全,请及时绑定邮箱和手机立即绑定

矢量化方法来计算 numpy 数组中特殊实例的数量

矢量化方法来计算 numpy 数组中特殊实例的数量

青春有我 2022-12-20 16:26:46
假设我有一个数组test = np.array([0,2,1,5,3,6,10,0,0,3,2,3,0,0,7,3,6,2,0,0,3,5,4,6])我想知道的是前一个值为零时下一个值不为零的次数;所以对于上面的数组我应该有 4。我写了一个函数来执行此操作,但它的执行速度非常慢。是否有任何我应该将其重新写入的矢量化函数?def count_instance(array):    return int(array[0] > 0) + sum(int(array[i] > 0 and array[i-1] == 0) for i in range(1,array.shape[0]))
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

带切片的单线 -

((test[:-1]==0) & (test[1:]!=0)).sum()

重复使用同一个面具的另一种方式 -

m = test==0
((m[:-1]) & (~m[1:])).sum()


查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号