From 1eec2ee8f40f989f3c0fd917c2b9c11beafcd498 Mon Sep 17 00:00:00 2001 From: leorene97490 Date: Fri, 20 Dec 2024 15:26:00 +0100 Subject: [PATCH] UP my solution --- numpy_questions.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/numpy_questions.py b/numpy_questions.py index 07a10c1..d0483a5 100644 --- a/numpy_questions.py +++ b/numpy_questions.py @@ -2,8 +2,8 @@ The goals of this assignment are: * Use numpy in practice with two easy exercises. - * Use automated tools to validate the code (`pytest` and `flake8`) - * Submit a Pull-Request on github to practice `git`. + * Use automated tools to validate the code (`pytest` and `flake8`). + * Submit a Pull-Request on GitHub to practice `git`. The two functions below are skeleton functions. The docstrings explain what are the inputs, the outputs and the expected error. Fill the function to @@ -29,7 +29,7 @@ def max_index(X): Returns ------- (i, j) : tuple(int) - The row and columnd index of the maximum. + The row and column index of the maximum. Raises ------ @@ -37,11 +37,11 @@ def max_index(X): If the input is not a numpy array or if the shape is not 2D. """ - i = 0 - j = 0 - - # TODO - + if not isinstance(X, np.ndarray): + raise ValueError("X must be a numpy array (np.ndarray).") + if len(X.shape) != 2: + raise ValueError("X must be a 2D array.") + i, j = np.unravel_index(np.argmax(X), X.shape) return i, j @@ -62,6 +62,9 @@ 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. + if n_terms == 0: + return 2 + s = 4 / 3 + for i in range(2, n_terms + 1): + s *= 4 * i**2 / (4 * i**2 - 1) + return s * 2