diff --git a/numpy_questions.py b/numpy_questions.py index 07a10c1..dd61161 100644 --- a/numpy_questions.py +++ b/numpy_questions.py @@ -37,11 +37,16 @@ def max_index(X): If the input is not a numpy array or if the shape is not 2D. """ - i = 0 - j = 0 + if not isinstance(X, np.ndarray): + raise ValueError("Input must be a numpy array.") - # TODO + if X.ndim != 2: + raise ValueError("Input must be a 2D numpy array.") + if X.size == 0: + raise ValueError("Input array must not be empty.") + + i, j = np.unravel_index(np.argmax(X), X.shape) return i, j @@ -62,6 +67,7 @@ def wallis_product(n_terms): pi : float The approximation of order `n_terms` of pi using the Wallis product. """ - # XXX : The n_terms is an int that corresponds to the number of - # terms in the product. For example 10000. - return 0. + pi = 1 + for i in range(1, n_terms + 1): + pi *= (4 * i ** 2) / (4 * i ** 2 - 1) + return 2 * pi