Answer the following question based on using Python Numpy Library: Question 3 (30 Points Use Numi'y random-sumber generation to create an array of 30 random rades in the range of 60 through 100, then reshape the result into a 10-by-3 array(shich will actually represent the Midterm 1, Midterm 2 and Final grade of 10 studente) a) Calculate the average of all the grades b) Calculate the average of the grades in each colume and each row. c) Calculate the average of the grade of the first two and last two students d) Calculate the average of Midterm 1 and Midterm 2 grades of the first students. e) Write fonctions median and mode that use existing NumP's capabilities to determine the median (middle) and made mest frequent) of the values in the array Test your function on three arrays of different shapes. Modify your functions to allow the user to provide an anis keyword argument so the calculations can be performed rew-by-power caluma-by- column on the above to-dimensional array Question 3 (30 points) Use NumPy random-number generation to create an array of 30 random grades in the range of 60 through 100, then reshape the result into a 10-by-3 array (which will actually represent the Midterm 1. Midterm 2 and Final grade of 10 students) a) Calculate the average of all the grades. b) Calculate the average of the grades in each column and each row. c) Calculate the average of the grade of the first two and last two students. d) Calculate the average of Midterm I and Midterm 2 grades of the first 5 students. e) Write functions median and mode that use existing NumPy capabilities to determine the median (middle) and mode (most frequent) of the values in the array. 1) Test your function on three arrays of different shapes. 9) Modify your functions to allow the user to provide an axis keyword argument so the calculations can be performed row-by-row or column-by- column on the above two-dimensional array. O Question 3 (30 points) Use NumPy random-number generation to create an array of 30 random grades in the range of 60 through 100, then reshape the result into a 10-by-3 array (which will actually represent the Midterm I. Midterm 2 and Final grade of 10 students) a) Calculate the average of all the grades. b) Calculate the average of the grades in each column and each row. c) Calculate the average of the grade of the first two and last two students. d) Calculate the average of Midterm 1 and Midterm 2 grades of the first 5 students. e) Write functions median and mode that use existing NumPy capabilities to determine the median (middle) and mode (most frequent) of the values in the array Test your function on three arrays of different shapes. g) Modify your functions to allow the user to provide an axis keyword argument so the calculations can be performed row-by-row or column-by- column on the above two-dimensional array. O