如何解决计数满足两行条件的元素
data
A B
1 1
5 1
3 6
5 3
3 1
-
如何应用函数编程来计算A [i]> A [i-1]和B [i] == B [i-1]的行数
-
以及如何打印这些行?
它们是不同的任务。我知道我们可以先解决第二个任务,然后再解决任务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])
您现在可以解决这两个问题:
-
计算
A[i]>A[i-1]
和B[i]==B[i-1]
所在的行数:>>> np.sum(mask) 1
-
打印以下行:
>>> x[np.r_[False,mask]] array([[5,1]])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。