Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算值在一系列中的更改次数_Python_Python 3.x_Pandas - Fatal编程技术网

Python 计算值在一系列中的更改次数

Python 计算值在一系列中的更改次数,python,python-3.x,pandas,Python,Python 3.x,Pandas,以系列为例: s = [1, -1, 1, 1, 1, -1] 什么是计算此类系列变化中的数值次数的最省时的方法?在这个例子中,答案是3(从1到-1,回到1,再回到-1)我将使用numpy (np.diff(s)!=0).sum() Out[497]: 3 我会用这个,如果错了请纠正我……:) 使用numpy的替代解决方案是 np.count_nonzero(np.diff(s)) 本机Python解决方案是 sum(s[i - 1] != s[i] for i in range(1, l

以系列为例:

s = [1, -1, 1, 1, 1, -1]

什么是计算此类系列变化中的数值次数的最省时的方法?在这个例子中,答案是3(从1到-1,回到1,再回到-1)

我将使用
numpy

(np.diff(s)!=0).sum()
Out[497]: 3

我会用这个,如果错了请纠正我……:)


使用
numpy
的替代解决方案是

np.count_nonzero(np.diff(s))
本机Python解决方案是

sum(s[i - 1] != s[i] for i in range(1, len(s)))

如此简洁完美。再次感谢
sum(s[i - 1] != s[i] for i in range(1, len(s)))