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)
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)