From 7b7d105cc27b3e0f7410e3aa10d3d1c8793ac348 Mon Sep 17 00:00:00 2001 From: Julien Guibert Date: Fri, 20 Dec 2024 15:38:51 +0100 Subject: [PATCH] Up my solution --- numpy_questions.py | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/numpy_questions.py b/numpy_questions.py index 07a10c1..6be6f81 100644 --- a/numpy_questions.py +++ b/numpy_questions.py @@ -3,7 +3,7 @@ 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`. + * 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 @@ -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,19 @@ def max_index(X): j = 0 # TODO + if not isinstance(X, np.ndarray): + raise ValueError("L'argument doit ĂȘtre une numpy array.") + + forme = X.shape + + if len(forme) != 2: + raise ValueError("L'argument doit ĂȘtre en 2D.") + + n_samples, n_features = forme + + index = np.argmax(X) + i = int(index // n_features) + j = int(index % n_features) return i, j @@ -62,6 +76,11 @@ 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 + + wal_pro = 1 + for i in range(1, n_terms + 1): + wal_pro *= (4 * i ** 2) / ((4 * i ** 2) - 1) + + return wal_pro * 2.