def recover_data(Z, U, k):
    """Recovers an approximation of original data using the projected data

    Args:
        Z (numpy.array): Reduced data representation (projection)
        U (numpy.array): eigenvectors of covariance matrix
        k (int): Number of features in reduced data representation

    Returns:
        numpy.array: Approximated features' dataset
    """
    X_rec = Z.dot(U[:, 0:k].T)
    return X_rec