python – 将数组值的增量减少到1
发布时间:2020-12-20 12:41:34 所属栏目:Python 来源:网络整理
导读:我正在尝试创建一个列表(比如说B),只有当另一个列表(例如A)的值存在差异时,该列表才会递增,例如: [1,1,2,4,4]至[0,2]或 [1,1]等 以下代码执行此操作: boxes=[1,4]positions=[0]position=0for psn,box in list(enumerate(boxes))[:-1]: if boxes[psn+1]-box
我正在尝试创建一个列表(比如说B),只有当另一个列表(例如A)的值存在差异时,该列表才会递增,例如:
[1,1,2,4,4]至[0,2]或 [1,1]等 以下代码执行此操作: boxes=[1,4] positions=[0] position=0 for psn,box in list(enumerate(boxes))[:-1]: if boxes[psn+1]-box ==0: increment=0 else: increment=1 position=position+increment positions.append(position) print(positions) 任何人都可以使用列表推导(最好使用lambda函数)来提供建议吗? 解决方法
这是使用nummpy的方法:
a = [1,4] [0] + np.cumsum(np.clip(np.diff(a),1)).tolist() [0,2] 或者对于另一个例子: a = [1,1] ?细节 a = [1,4] 用 np.diff(a) array([0,0]) 并使用 np.clip(np.diff(a),1) array([0,0]) 最后取 [0] + np.cumsum(np.clip(np.diff(a),2] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |