diff --git a/numpy_questions.py b/numpy_questions.py index 07a10c1..4a25e25 100644 --- a/numpy_questions.py +++ b/numpy_questions.py @@ -41,7 +41,13 @@ def max_index(X): j = 0 # TODO + if not isinstance(X, np.ndarray): + raise ValueError("Input must be a numpy array.") + if X.ndim != 2: + raise ValueError("Input must be a 2D array.") + max_idx = np.unravel_index(np.argmax(X), X.shape) + i, j = max_idx return i, j @@ -64,4 +70,12 @@ 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: + raise ValueError("Number of terms must be non-negative.") + + product = 1.0 + for n in range(1, n_terms + 1): + term = (4 * n ** 2) / (4 * n ** 2 - 1) + product *= term + + return product * 2