我们的代码中有一个错误来自该行
unsigned int i = -1;
Run Code Online (Sandbox Code Playgroud)
当代码最初编写时,是i = 0,因此是正确的.使用-Wall -Wextra,我有点惊讶gcc没有在这里警告我因为-1不适合unsigned int.
只有当打开-Wsign-conversion这条线时才会成为警告 - 但是有许多误报.我正在使用第三方库,它使用signed int进行类似于数组的操作(尽管它们不能<0),所以每当我将它与例如vector混合时,我都会收到警告 - 而且我没有看到添加数百万的强制转换(甚至第三方标题会产生很多警告).所以这对我来说太多了警告.所有这些警告都是转换"可能会改变标志".这很好,因为我知道几乎在所有情况下都没有.
但是通过上面提到的任务,我得到了相同的"可能改变"警告.这不应该是"肯定会改变标志!" 而不是"可能改变"?是否有任何方法仅针对这些"将改变"的情况发出警告,而不是针对可能的情况?
pandas.DataFrame 中是否有滚动“任何”函数?或者还有其他方法可以在滚动函数中聚合布尔值吗?
考虑:
import pandas as pd
import numpy as np
s = pd.Series([True, True, False, True, False, False, False, True])
# this works but I don't think it is clear enough - I am not
# interested in the sum but a logical or!
s.rolling(2).sum() > 0
# What I would like to have:
s.rolling(2).any()
# AttributeError: 'Rolling' object has no attribute 'any'
s.rolling(2).agg(np.any)
# Same error! AttributeError: 'Rolling' object has no attribute 'any'
Run Code Online (Sandbox Code Playgroud)
那么聚合布尔值时可以使用哪些函数?(如果 numpy.any 不起作用)https://pandas.pydata.org/pandas-docs/version/0.23.4/ generated/pandas.DataFrame.rolling.html …