From ecb426ed2ccf065f002b7ada00f0281c95e61ead Mon Sep 17 00:00:00 2001 From: Amy Date: Fri, 28 Oct 2022 02:14:22 +0300 Subject: [PATCH 1/3] Added homework on numpy --- hw_numpy/README.md | 0 hw_numpy/numpy_challenge.py | 47 +++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 hw_numpy/README.md create mode 100644 hw_numpy/numpy_challenge.py diff --git a/hw_numpy/README.md b/hw_numpy/README.md new file mode 100644 index 0000000..e69de29 diff --git a/hw_numpy/numpy_challenge.py b/hw_numpy/numpy_challenge.py new file mode 100644 index 0000000..b40c36c --- /dev/null +++ b/hw_numpy/numpy_challenge.py @@ -0,0 +1,47 @@ +import numpy as np + +if __name__ == "__main__": + # Creating an array from a list(the first way): + array1 = np.array([6, 6, 6]) + # Creating an array with arange (the second way): + array2 = np.arange(6) + # Creating an array of zeros (the third way): + array3 = np.zeros(6) + + +# This function computes matrix multiplication of 2 matrices +def matrix_multiplication(matrix1, matrix2): + return np.matmul(matrix1, matrix2) + +# This function checks whether multiple matrices can be multiplied +def multiplication_check(*matrices): + for i in range(len(matrices) - 1): + if matrices[i].shape[1] != matrices[i+1].shape[0]: + return False + return True + +# This function computes matrix multiplication of several matrices (if possible) +def multiply_matrices(*matrices): + if multiplication_check(*matrices): + return np.linalg.multi_dot(matrices) + else: + return None + +# This function computes distance between 2 point in 2-dimensional space +def compute_2d_distance(array1, array2): + return np.linalg.norm(array2 - array1) + +# This function computes distance between 2 point in multidimensional space +def compute_multidimensional_distance(array1, array2): + return np.linalg.norm(array2 - array1) + +# This function computes matrix of pair distances between rows of input matrix +def compute_pair_distances(matrix): + dim = matrix.shape[0] # amount of rows in input matrix + pair_distances = np.zeros((dim, dim)) + for n_row in range(dim): + for n_col in range(dim): + if n_row != n_col: # filling matrix of pair distances + pair_distances[n_row, n_col] = np.linalg.norm(matrix[n_row] - +matrix[n_col]) + return pair_distances From 2b269aedaad97c2a9b86a4f1928f2e530dfa64bf Mon Sep 17 00:00:00 2001 From: Amy Date: Fri, 28 Oct 2022 02:16:59 +0300 Subject: [PATCH 2/3] Corrected a typo --- hw_numpy/numpy_challenge.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw_numpy/numpy_challenge.py b/hw_numpy/numpy_challenge.py index b40c36c..f392ff0 100644 --- a/hw_numpy/numpy_challenge.py +++ b/hw_numpy/numpy_challenge.py @@ -42,6 +42,5 @@ def compute_pair_distances(matrix): for n_row in range(dim): for n_col in range(dim): if n_row != n_col: # filling matrix of pair distances - pair_distances[n_row, n_col] = np.linalg.norm(matrix[n_row] - -matrix[n_col]) + pair_distances[n_row, n_col] = np.linalg.norm(matrix[n_row] - matrix[n_col]) return pair_distances From 07e27647ed83bba5db1785167e9d505d1b47b7dd Mon Sep 17 00:00:00 2001 From: ibragimovaamina <104636744+ibragimovaamina@users.noreply.github.com> Date: Fri, 28 Oct 2022 02:29:15 +0300 Subject: [PATCH 3/3] Added README --- hw_numpy/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw_numpy/README.md b/hw_numpy/README.md index e69de29..384ff3f 100644 --- a/hw_numpy/README.md +++ b/hw_numpy/README.md @@ -0,0 +1,8 @@ +Script *numpy.challenge* creates 3 numpy arrays in 3 different ways and implements several functions using **numpy** library: + +1. matrix_multiplication() - takes 2 matrices, returns their matrix multiplication; +2. multiplication_check() - takes list of matrixes, returns True if they can be multiplied, otherwise returns False; +3. multiply_matrices() - takes list of matrixes, returns their matrix multiplication if they can be multiplied; +4. compute_2d_distance() - takes 2 1-dimensional arrays, returns distance between them; +5. compute_multidimensional_distance() - takes 2 1-dimensional arrays, returns distance between them; +6. compute_pair_distances() - takes matrix, returns matrix of pair distances for its rows.