我有一个数组
[False False False ... True True True]
我想检查是否前一个值==当前值。在Pandas中,我可以使用类似于...
np.where(df[col name].shift(1).eq(df[col name]), True, False)
我尝试使用scipy shift,但输出不正确,所以可能我用错了?
np.where(shift(long_gt_price, 1) == (long_gt_price),"-", "Different")
我只是想告诉你我说它会产生不正确的输出是什么意思:左边的列是移位(1),右边的列是未移位的列,所以左边的列应该等于到它的对角线的平方,至少这是我的理解/我想要的是False / True在左边5下,右边4下,因此对我来说没有任何意义。
3条答案
按热度按时间slmsl1lt1#
为什么不使用切片
arr[1:] == arr[:-1]
结果将是稍微短一些的数组,但不需要处理边界情况。
flseospp2#
这似乎是你想要的:
对于纯粹的
numpy
:fykwrbwg3#
一个简单的一维数组移位函数,类似于Pandas:
这是为了处理数值数组,因为移位后的值被np.NAN替换。选择另一个“null”值是很简单的,只需用任何你想要的值填充
nas
数组。