In: Computer Science
Using python, allows a user to enter the values of two, 3x3 matrices and then select from options including, addition, subtraction, matrix multiplication, and element by element multiplication. You should use numpy.matmul()for matrix multiplication(e.g. np.matmul(a, b)).The program should computer the appropriate results and return the results, the transpose of the results, the mean of the rows for the results, and the mean of the columns for the results.When entering data you should check that each value is numeric for the matrices. The user interface should continue to run until the user indicates they are ready to exit.
If an inappropriate entry is detected, the program should prompt for a correct value and continue to do so until a correct value isentered.
1.Use numpy and associated functionality
2.Create and use functions as often as possible
3.Use comments to document your code4.Both integers and float values are acceptable
import numpy as np
global a   #declare globally for use in whole program and its function
global b
a = np.zeros([3, 3])  #creation of 3x3  array for matrices
b = np.zeros([3, 3])
def create():   #create two numpy array
    def enter():      # if user enter value rather than integer and float then this function call to enter appropriate value for first array
        try:
            a[i][j] = input()
        except ValueError:
            print("Enter integer or float only")
            enter()    # recursion will occur until user enter integer or floating point value
    print("enter elements of first array")
    for i in range(3): #entering element by index in first matrix
        for j in range(3):
            try:
                a[i][j] = input()
            except ValueError:
                print("Enter integer or float only")
                enter()
    print("Your first matrix\n",a)
    def enter(): # if user enter value rather than integer and float then this function call to enter appropriate value for second  array
        try:
            b[i][j] = input()
        except ValueError:
            print("Enter integer or float only")
            enter()  # recursion will occur until user enter integer or floating point value
    print("enter elements of Second array")
    for i in range(3):   #entering element by index in second matrix
        for j in range(3):
            try:
                b[i][j] = input()
            except ValueError:
                print("Enter integer or float only")
                enter()
    print("your second matrix\n",b)
    appropriate()
global choice   #globally declared to use in whole program
def selection():
    if (choice == 1):
        c = a + b  #matrix addition
        print("resultant matix\n")
        print(c)
        print("transpose of resultant matrix")
        print(c.T)
        print("mean of coloumn")
        print(np.mean(c, axis=0))
        print("mean of rows")
        print(np.mean(c, axis=1))
        appropriate() # show available option
    elif(choice==2):
        c = a - b   #matrix subtraction
        print("resultant matix\n")
        print(c)
        print("transpose of resultant matrix")
        print(c.T)
        print("mean of coloumn")
        print(np.mean(c, axis=0))
        print("mean of rows")
        print(np.mean(c, axis=1))
        appropriate() # show available option
    elif(choice==3):
        c=np.matmul(a, b)  #matrix multiplication
        print("resultant matix\n")
        print(c)
        print("transpose of resultant matrix")
        print(c.T)
        print("mean of coloumn")
        print(np.mean(c, axis=0))
        print("mean of rows")
        print(np.mean(c, axis=1))
        appropriate() # show available option
    elif(choice==4):
        c = a*b #element by element multiplication
        print("resultant matix\n")
        print(c)
        print("transpose of resultant matrix")
        print(c.T)
        print("mean of coloumn")
        print(np.mean(c, axis=0))
        print("mean of rows")
        print(np.mean(c, axis=1))
        appropriate()  # show available option
    elif(choice==5):
        create() #re create two matrices
    elif(choice==6):
        pass  #no function call it is end of program
def appropriate():    #user must enter integer value for given choice
    try:
        print("\n enter choice:\n1.Matrix Addition\n2.Matrix Subtraction\n3.Matrix Multiplication \n4.multiplication element by element\n5.Re-enter all two matrices\n6.exit")
        global  choice
        choice=int(input())
        selection()
    except ValueError:
        print("enter appropriate choice")
        appropriate()    #function recursion until user enters appropriate value
create()    #program  exceution starting by creation of matrices by calling the function