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,列表列表。
答案 0 :(得分:0)
在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]])