I'm trying to multiply two matrices together using pure python.

```X1 =  [[1.0016, 0.0, -16.0514],
[0.0, 10000.0, -40000.0],
[-16.0514, -40000.0, 160513.6437]]
Xt =  [(1.0, 1.0),
(0.0, 0.25),
(0.0, 0.0625)]```

where Xt is the zip transpose of another matrix. Now here is the code:

```def matrixmult (A, B):
C = [[0 for row in range(len(A))] for col in range(len(B))]
for i in range(len(A)):
for j in range(len(B)):
for k in range(len(B)):
C[i][j] += A[i][k]*B[k][j]
return C```

Getting this error: IndexError: list index out of range. Now I'm not sure if Xt is recognised as an matrix and is still a list object, but technically this should work.

Nov 15, 2018 in Python 1,375 views

## 1 answer to this question.

```def matmult(a,b):
zip_b = zip(*b)
# uncomment next line if python 3 :
# zip_b = list(zip_b)
return [[sum(ele_a*ele_b for ele_a, ele_b in zip(row_a, col_b))
for col_b in zip_b] for row_a in a]

x = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
y = [[1,2],[1,2],[3,4]]

import numpy as np # I want to check my solution with numpy

mx = np.matrix(x)
my = np.matrix(y)       ```

Result:

```>>> matmult(x,y)
[[12, 18], [27, 42], [42, 66], [57, 90]]
>>> mx * my
matrix([[12, 18],
[27, 42],
[42, 66],
[57, 90]])```
• 3,260 points

## How do I connect to a MySQL Database in Python?

connect mysql database with python import MySQLdb db = ...READ MORE

## How do I append one string to another in Python?

If you only have one reference to ...READ MORE

## how do i change string to a list?

suppose you have a string with a ...READ MORE

## how can i randomly select items from a list?

You can also use the random library's ...READ MORE

+1 vote

## how can i count the items in a list?

Syntax :            list. count(value) Code: colors = ['red', 'green', ...READ MORE