Sharing answer codes of mine about Programmers Level2. productMatrix.

Level 2: Matrix Multiplication

Problem Statement

The product of two matrices and id defined as

where is summed over for all possible values of and . To multiply matrices, the number of columns in the left matrix and the number of rows in the right matrix must be the same. Given two matrices A and B that can be multiplied, complete the productMatrix function, which outputs the value of matrix multiplication.

Answer code without using Numpy (in Python 3)

# Answer code without using numpy

def productMatrix(A,B):
    answer = [] # define return variable
    
    # (i,j) * (j,k) = (i,k)
    if range(len(A[0])) != range(len(B)): # Matrix product is impossible
        return answer
    
    for i in range(len(A)):
        column=[]
        for k in range(len(B[0])):
            sum = 0
            for j in range(len(A[0])):
                sum += A[i][j]*B[j][k]
            column.append(sum)
        answer.append(column)
    return answer

# Compile time: 23ms

Answer code using Numpy (in Python 3)

# Answer code using numpy

import numpy as np

def productMatrix(A,B):

    # (i,j) * (j,k) = (i,k)
    if range(len(A[0])) != range(len(B)): # Matrix product is impossible
        return []
    
    return (np.matrix(A)*np.matrix(B)).tolist()

# Compile time: 170ms

Clever answer code without using Numpy (in Python 3)

# Short answer code without using numpy

def productMatrix(A,B):

    # (i,j) * (j,k) = (i,k)
    if range(len(A[0])) != range(len(B)): # Matrix product is impossible
        return []
    
    return [[sum(a * b for a, b in zip(A_row, B_col)) for B_col in zip(*B)] for A_row in A]

# Compile time: 24ms