python – 将数组值的增量减少到1

python – 将数组值的增量减少到1,第1张

概述我正在尝试创建一个列表(比如说B),只有当另一个列表(例如A)的值存在差异时,该列表才会递增,例如: [1,1,2,2,4,4]至[0,0,1,1,2,2]或 [1,1,1,1,4,4,4,4]至[0,0,0,0,1,1,1,1]等 以下代码执行此 *** 作: boxes=[1,1,1,1,4,4,4,4]positions=[0]position=0for psn,box in list(enu 我正在尝试创建一个列表(比如说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 ==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得到阵列的第一个区别

np.diff(a)array([0,0])

并使用np.clip来限制0到1之间的值:

np.clip(np.diff(a),1)array([0,0])

最后取np.cumsum并在开头添加一个0,因为差异会给你一个长度为n-1的数组

[0] + np.cumsum(np.clip(np.diff(a),2]
总结

以上是内存溢出为你收集整理的python – 将数组值的增量减少到1全部内容,希望文章能够帮你解决python – 将数组值的增量减少到1所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1195246.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存