matrix using python

matrix in python without numpy
matrix multiplication python
create matrix in python using for loop
transpose matrix python
matrix operations in python
matrix in python using list
create empty matrix python
numpy matrix

I'm new to python and I'm writing a program fro matrix but there is a problem I don't know to get the right output and I need help with it. this is the question:Given a nXn matrix A and a kXn matrix B find AB . and here is what I have so far. Thank you in advance

def matrixmult (A, B):
    rows_A = len(A)
    cols_A = len(A[0])
    rows_B = len(B)
    cols_B = len(B[0])

    if cols_A != rows_B:
      print "Cannot multiply the two matrices. Incorrect dimensions."
      return

    # Create the result matrix
    # Dimensions would be rows_A x cols_B
    C = [[0 for row in range(cols_B)] for col in range(rows_A)]
    print C

    for i in range(rows_A):
        for j in range(cols_B):
            for k in range(cols_A):
                C[i][j] += A[i][k]*B[k][j]
    return C

Your function:

def matrixmult (A, B):
    rows_A = len(A)
    cols_A = len(A[0])
    rows_B = len(B)
    cols_B = len(B[0])

    if cols_A != rows_B:
      print "Cannot multiply the two matrices. Incorrect dimensions."
      return

    # Create the result matrix
    # Dimensions would be rows_A x cols_B
    C = [[0 for row in range(cols_B)] for col in range(rows_A)]
    print C

    for i in range(rows_A):
        for j in range(cols_B):
            for k in range(cols_A):
                C[i][j] += A[i][k]*B[k][j]
    return C

Which appears to be the same as this function.

If I run this:

matrix=[[1,2,3],
    [4,5,6],
    [7,8,9]]

print matrixmult(matrix, matrix)    # that is your function...

It returns:

[[30, 36, 42], [66, 81, 96], [102, 126, 150]]

This is the same as Numpy:

import numpy as np

a=np.array(matrix)
b=np.array(matrix)
print np.dot(a,b)
#  [[ 30  36  42]
    [ 66  81  96]
    [102 126 150]]

And the same as the matrix multiply more tersely stated:

def mult(mtx_a,mtx_b):
    tpos_b = zip( *mtx_b)
    rtn = [[ sum( ea*eb for ea,eb in zip(a,b)) for b in tpos_b] for a in mtx_a]
    return rtn

So -- it is probably your input data that is the issue.

Python - Matrix, In other words, it is a rectangular array of data or numbers. The horizontal entries in a matrix are called as 'rows' while the vertical entries are called as 'columns'. If​  Matrix manipulation in Python 1. add () :- . This function is used to perform element wise matrix addition. 2. subtract () :- . This function is used to perform element wise matrix subtraction. 3. divide () :- . This function is used to perform element wise matrix division. Optional “axis”

Use numPy library to solve your problem.

import numpy as np

x = np.array( ((2,3), (3, 5)) )

y = np.array( ((1,2), (5, -1)) )

print x * y

array([[ 2, 6], [15, -5]])

More examples: http://www.python-course.eu/matrix_arithmetic.php

Download numPy: http://scipy.org/Download

Take Matrix input from user in Python, In python matrix can be implemented as 2D list or 2D Array. Forming matrix from latter, gives the additional functionalities for performing various operations in  We can implement a Python Matrix in the form of a 2-d Listor a 2-d Array. To perform operations on Python Matrix, we need to import Python NumPy Module. Python Matrix is essential in the field of statistics, data processing, image processing, etc. Creation of a Python Matrix

One liner:

def matrixmult(m1, m2):
    return [
        [sum(x * y for x, y in zip(m1_r, m2_c)) for m2_c in zip(*m2)] for m1_r in m1
    ]

Explanation:

zip(*m2) - gets a column from the second matrix

zip(m1_r, m2_c) - creates tuple from m1 row and m2 column

sum(...) - sums multiplication row * col

Test:

m1 = [[1, 2, 3], [4, 5, 6]]
m2 = [[7, 8], [9, 10], [11, 12]]
result = matrixmult(m1, m2)
assert result == [[58, 64], [139, 154]]

Matrix manipulation in Python, Python Matrix. To work with Python Matrix, we need to import Python numpy module. Generally a matrix is created using numpy.matix() function. We can use  There is another way to create a matrix in python. It is using the numpy matrix () methods. It is the lists of the list. For example, I will create three lists and will pass it the matrix () method. list1 = [2,5,1] list2 = [1,3,5] list3 = [7,5,8] matrix2 = np.matrix ( [list1,list2,list3]) matrix2. You can also find the dimensional of the matrix using the matrix_variable.shape.

Python Matrix, In this chapter we want to show, how we can perform in Python with the module NumPy all the basic Matrix Arithmetics like. Matrix addition; Matrix subtraction  If you want to create a 1d array then use only one integer in the parameter. To make a 2d array matrix put 2 integers. The first integer is the number of rows and the 2nd one is the number of columns. Return Type: ndarray; Create matrix of random integers in Python. In order to create a random matrix with integer elements in it we will use:

Numerical & Scientific Computing with Python: Matrix Arithmetics in , Matrix operations in numpy most often use an array type with two dimensions. There are many ways to create a new array; one of the most useful is the zeros  Step 2: Get the Population Covariance Matrix using Python. To get the population covariance matrix (based on N), you’ll need to set the bias to True in the code below. This is the complete Python code to derive the population covariance matrix using the numpy package:

How to define a two-dimensional array in Python, What is Matrix in Python? These are 2D (two dimensional) data structure. In live projects and real data simulation, you have to keep the data in a sequential  If X is a n x m matrix and Y is a m x l matrix then, XY is defined and has the dimension n x l (but YX is not defined). Here are a couple of ways to implement matrix multiplication in Python. Source Code: Matrix Multiplication using Nested Loop

Comments
  • I don't see anything obviously wrong here. Do you have an example input where it gets the wrong answer?
  • no actually, but when I run it I get no output!
  • When you say you get no output, do you mean it doesn't print anything, that the return value is None, or something else? Oh, and in the code you posted, return C should be on column 4 instead of 3. Typo in your post?
  • it returns value none
  • If cols_A != rows_B it will return None
  • yeah that was my issue, you're really explained it well Thanks!
  • While numpy is definitely the way to go in production code, I'm pretty sure this is an exercise, so going right to a library might defeat the purpose. Moreover, the OP is doing matrix multiplication, not elementwise multiplication, so x*y on two ndarrays wouldn't work. You'd need to use dot or the matrix class.
  • Mido you need to go to numpy website and download the numpy library. Afther you need install and now you can go to your project and do the import.