繁体   English   中英

计算满足两行条件的元素

[英]Count elements satisfying a condition of two rows

data
A  B
1  1
5  1
3  6
5  3
3  1
  1. 如何应用函数式编程来计算 A[i]>A[i-1] 和 B[i]==B[i-1] 的行数

  2. 以及如何打印这些行?

它们是不同的任务。 我知道我们可以先解决第二个任务,然后解决任务 1。但是我很好奇没有 for/any_other 循环的不同解决方案。

可以使用的数据结构:Numpy、Pandas、列表列表。

numpy您需要找到差异,然后比较新数组的值:

x = pd.DataFrame(data).values
diff = np.diff(x, axis=0)
mask = np.logical_and(diff[:,0]>0, diff[:,1]==0)

>>> mask
array([ True, False, False, False])

您现在可以解决这两个问题:

  • 计算A[i]>A[i-1]B[i]==B[i-1]

     >>> np.sum(mask) 1
  • 打印这些行:

     >>> x[np.r_[False, mask]] array([[5, 1]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM