python:for循环紧凑表示

The*_*heo 3 python numpy

Python,Numpy

是否有一种更紧凑的方式来操作数组元素,而不必使用标准的for循环.

例如,考虑以下功能:

filterData(A):
    B = numpy.zeros(len(A));
    B[0] = (A[0] + A[1])/2.0;
    for i in range(1, len(A)): 
        B[i] = (A[i]-A[i-1])/2.0;
    return B;
Run Code Online (Sandbox Code Playgroud)

Cam*_*lon 5

Numpy有一个diff运算符,可以在numpy数组和Python本机数组上运行.您可以将代码重写为:

def filterData(A):
    B = numpy.zeros(len(A));
    B[1:] = np.diff( A )/2.0
    B[0] = (A[0] + A[1])/2.0;
    return B
Run Code Online (Sandbox Code Playgroud)