Transcript for Friday 09 November (practice)

| categories: Transcripts, Practice

Today we worked through the practice problems from 6 November.

    import numpy as np

def esmooth(A, alpha):
    R = np.zeros_like(A)
    R[0] = A[0]
    for i in range(1, len(A)):
        R[i] = alpha * A[i] + (1 - alpha) * R[i-1]
    return R

def esmooth2(A, alpha):
    R = np.zeros_like(A)
    for i, v in enumerate(A):
        if i == 0:
            R[i] = v
        else:
            R[i] = alpha*A[i] + (1 - alpha) * R[i-1]
    return R

def esmooth3(A, alpha):
    R = []
    R.append(A[0])
    for v in A[1:]:
        R.append(alpha * v + (1 - alpha) * R[-1])
    return np.array(R)

def reverseArray(A):
    R = np.zeros_like(A)
    N = len(A)
    for i in range(N):
        R[i] = A[N - i - 1]
    return R

def bdesmooth(A, alpha):
    R1 = esmooth(A, alpha)
    R2 = esmooth(A[-1::-1], alpha)
    R2 = R2[-1::-1]
    return (R1 + R2) / 2

def replaceOutliers(A, lower, upper):
    s = 0.0
    n = 0
    for v in A:
        if lower <= v <= upper:
            s = s + v
            n = n + 1
    m = s / n
    R = np.zeros_like(A)
    for i, v in enumerate(A):
        if v < lower or v > upper:
            R[i] = m
        else:
            R[i] = A[i]
    return R