
[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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)