From 5e41a586c635bbe1f482a6e416cd53db436c3396 Mon Sep 17 00:00:00 2001 From: CyprienDS Date: Tue, 17 Dec 2024 12:35:11 +0100 Subject: [PATCH 1/3] =?UTF-8?q?Exercices=20compl=C3=A9t=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: CyprienDS --- numpy_questions.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/numpy_questions.py b/numpy_questions.py index 07a10c1..065b8a5 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 @@ -40,7 +41,21 @@ def max_index(X): i = 0 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 +77,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. From 28e675817cffefa0eeea614567215f07a15dbbfd Mon Sep 17 00:00:00 2001 From: CyprienDS <61224311+CyprienDS@users.noreply.github.com> Date: Wed, 18 Dec 2024 14:28:30 +0100 Subject: [PATCH 2/3] Update numpy_questions.py --- numpy_questions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/numpy_questions.py b/numpy_questions.py index 065b8a5..13a662d 100644 --- a/numpy_questions.py +++ b/numpy_questions.py @@ -54,8 +54,8 @@ def max_index(X): n_samples, n_features = forme index = np.argmax(X) - i = int(index//n_features) - j = int(index%n_features) + i = int(index // n_features) + j = int(index % n_features) return i, j From 9a26228ae7d6451f6e0bead5fccd87873ae00827 Mon Sep 17 00:00:00 2001 From: CyprienDS Date: Wed, 18 Dec 2024 15:28:11 +0100 Subject: [PATCH 3/3] =?UTF-8?q?Exercices=20compl=C3=A9t=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: CyprienDS --- numpy_questions.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/numpy_questions.py b/numpy_questions.py index 065b8a5..6be6f81 100644 --- a/numpy_questions.py +++ b/numpy_questions.py @@ -41,7 +41,6 @@ def max_index(X): i = 0 j = 0 - # TODO if not isinstance(X, np.ndarray): raise ValueError("L'argument doit être une numpy array.") @@ -54,8 +53,8 @@ def max_index(X): n_samples, n_features = forme index = np.argmax(X) - i = int(index//n_features) - j = int(index%n_features) + i = int(index // n_features) + j = int(index % n_features) return i, j