diff --git a/numpy_questions.py b/numpy_questions.py index 07a10c1..227ae0d 100644 --- a/numpy_questions.py +++ b/numpy_questions.py @@ -15,6 +15,7 @@ This will be enforced with `flake8`. You can check that there is no flake8 errors by calling `flake8` at the root of the repo. """ + import numpy as np @@ -41,6 +42,11 @@ def max_index(X): j = 0 # TODO + if not isinstance(X, np.ndarray): + raise ValueError("The input is not numpy array!") + if X.ndim != 2: + raise ValueError("The input is not a 2D array!") + i, j = np.unravel_index(np.argmax(X), X.shape) return i, j @@ -64,4 +70,13 @@ def wallis_product(n_terms): """ # XXX : The n_terms is an int that corresponds to the number of # terms in the product. For example 10000. - return 0. + if n_terms == 0: + return 2. + + product = 1.0 + for i in range(1, n_terms + 1): + numerator = 4 * i ** 2 + denominator = (4 * i ** 2) - 1 + product *= numerator / denominator + + return 2 * product