Cách nhân hai ma trận có kích thước khác nhau trong python

Phép nhân ma trận NumPy là một phép toán chấp nhận hai ma trận và cho một ma trận duy nhất bằng cách nhân các hàng của ma trận thứ nhất với cột của ma trận thứ hai. Để nhân hai ma trận, NumPy cung cấp ba chức năng khác nhau

  • 
    import numpy as np
    # Create a numpy two dimensional arrays
    arr = np.array([[2, 4, 3, 1],[2, 3, 6, 1]])
    arr1 = np.array([[2, 1, 5, 2],[4, 8, 3, 2]])
                     
    # Use numpy.mutiply() function and 
    # get the matrix multiplication
    arr2 = np.multiply(arr, arr1)
    print(arr2)
    
    # Output :
    # [[ 4  4 15  2]
    # [ 8 24 18  2]]
    
    3 – Phép nhân ma trận hai mảng theo từng phần tử
  • 
    import numpy as np
    # Create a numpy two dimensional arrays
    arr = np.array([[2, 4, 3, 1],[2, 3, 6, 1]])
    arr1 = np.array([[2, 1, 5, 2],[4, 8, 3, 2]])
                     
    # Use numpy.mutiply() function and 
    # get the matrix multiplication
    arr2 = np.multiply(arr, arr1)
    print(arr2)
    
    # Output :
    # [[ 4  4 15  2]
    # [ 8 24 18  2]]
    
    4 – Tích ma trận của hai mảng
  • 
    import numpy as np
    # Create a numpy two dimensional arrays
    arr = np.array([[2, 4, 3, 1],[2, 3, 6, 1]])
    arr1 = np.array([[2, 1, 5, 2],[4, 8, 3, 2]])
                     
    # Use numpy.mutiply() function and 
    # get the matrix multiplication
    arr2 = np.multiply(arr, arr1)
    print(arr2)
    
    # Output :
    # [[ 4  4 15  2]
    # [ 8 24 18  2]]
    
    5 – Tích vô hướng hoặc vô hướng của hai mảng

Trong khi thực hiện phép nhân ma trận trong NumPy, hãy đảm bảo rằng số cột của ma trận thứ nhất phải bằng số hàng của ma trận thứ hai

1. Ví dụ nhanh về phép nhân ma trận trong NumPy

Nếu bạn đang vội, dưới đây là một số ví dụ nhanh về cách sử dụng phép nhân ma trận NumPy


# Below are the quick examples

# Example 1: Use numpy.mutiply() function and 
# get the matrix multiplication
arr2 = np.multiply(arr, arr1)

# Example 2: Get the certain rows multiplication
arr2 = np.multiply(arr[ 0,: 2], arr1[ 1,: 2])

# Example 3: Get dot product of arrays
arr = np.array([[1, 3 ],
                [4, 1 ]])
arr1 = 2
arr2 = np.dot(arr,arr1)

# Example 4: Use numpy.dot() function
# Get the product of two arrays
arr2 = np.dot(arr,arr1)

# Example 5: # Use numpy.matmul() function
# Get the product 
arr2 = np.matmul(arr,arr1)

2. Sử dụng NumPy. nhân () Lấy phép nhân ma trận theo phần tử

Hãy tạo các mảng NumPy và sử dụng các mảng này để thực hiện phép nhân theo từng phần tử bằng phương pháp


import numpy as np
# Create a numpy two dimensional arrays
arr = np.array([[2, 4, 3, 1],[2, 3, 6, 1]])
arr1 = np.array([[2, 1, 5, 2],[4, 8, 3, 2]])
                 
# Use numpy.mutiply() function and 
# get the matrix multiplication
arr2 = np.multiply(arr, arr1)
print(arr2)

# Output :
# [[ 4  4 15  2]
# [ 8 24 18  2]]
6. Điều này Nhân mọi phần tử của ma trận thứ nhất với phần tử tương đương trong ma trận thứ hai bằng cách sử dụng phép nhân chia phần tử hoặc Tích Hadamard. Đảm bảo rằng kích thước của cả hai ma trận phải giống nhau để nhân


import numpy as np
# Create a numpy two dimensional arrays
arr = np.array([[2, 4, 3, 1],[2, 3, 6, 1]])
arr1 = np.array([[2, 1, 5, 2],[4, 8, 3, 2]])
                 
# Use numpy.mutiply() function and 
# get the matrix multiplication
arr2 = np.multiply(arr, arr1)
print(arr2)

# Output :
# [[ 4  4 15  2]
# [ 8 24 18  2]]

Để chuyển một số hàng, cột hoặc ma trận con nhất định cho phương thức 


import numpy as np
# Create a numpy two dimensional arrays
arr = np.array([[2, 4, 3, 1],[2, 3, 6, 1]])
arr1 = np.array([[2, 1, 5, 2],[4, 8, 3, 2]])
                 
# Use numpy.mutiply() function and 
# get the matrix multiplication
arr2 = np.multiply(arr, arr1)
print(arr2)

# Output :
# [[ 4  4 15  2]
# [ 8 24 18  2]]
0 và lấy phép nhân của một số hàng, cột và ma trận con nhất định. Chúng ta nên tuân theo cùng Kích thước của hàng, cột hoặc ma trận con mà chúng ta chuyển làm toán hạng của mình. Hãy lấy một ví dụ,


# Get the certain rows multiplication
arr2 = np.multiply(arr[ 0,: 2], arr1[ 1,: 2])
print(arr2)

# Output :
# [ 5 12]

arr3 = np.multiply(arr[ 1,: 3], arr1[ 0,: 3])
print(arr3)

# Output :
# [ 2  8 18]

3. Sử dụng NumPy. dot() cho phép nhân vô hướng

Một dạng đơn giản của phép nhân ma trận là phép nhân vô hướng, chúng ta có thể thực hiện điều đó bằng cách sử dụng hàm NumPy dot(). Trong phép nhân vô hướng, chúng ta có thể nhân một số vô hướng với một ma trận hoặc nhân một ma trận với một số vô hướng. Mỗi phần tử trong ma trận được nhân với vô hướng, trả về mảng hình dạng giống như mảng ban đầu

Khi thực hiện phép nhân vô hướng, thứ tự không quan trọng. Điều này trả về cùng một đầu ra nếu chúng ta nhân vô hướng với ma trận hoặc ma trận với vô hướng


# Get dot product of arrays
arr = np.array([[1, 3 ],
                [4, 1 ]])
arr1 = 2
arr2 = np.dot(arr,arr1)
print(arr2)

# Output :
# [[2 6]
# [8 2]]

Chúng ta có thể nhân một ma trận 2 chiều với một ma trận 2 chiều khác bằng cách sử dụng


import numpy as np
# Create a numpy two dimensional arrays
arr = np.array([[2, 4, 3, 1],[2, 3, 6, 1]])
arr1 = np.array([[2, 1, 5, 2],[4, 8, 3, 2]])
                 
# Use numpy.mutiply() function and 
# get the matrix multiplication
arr2 = np.multiply(arr, arr1)
print(arr2)

# Output :
# [[ 4  4 15  2]
# [ 8 24 18  2]]
1. khi chúng ta nhân hai ma trận, nó phải tuân theo thứ tự i. e

import numpy as np
# Create a numpy two dimensional arrays
arr = np.array([[2, 4, 3, 1],[2, 3, 6, 1]])
arr1 = np.array([[2, 1, 5, 2],[4, 8, 3, 2]])
                 
# Use numpy.mutiply() function and 
# get the matrix multiplication
arr2 = np.multiply(arr, arr1)
print(arr2)

# Output :
# [[ 4  4 15  2]
# [ 8 24 18  2]]
2 nhân với ma trận Y không giống như ma trận Y nhân với ma trận X. Hãy tạo một hình ảnh để hiểu rõ hơn

Cách nhân hai ma trận có kích thước khác nhau trong python
cục mịch. dấu chấm()

# Create numpy arrays
arr = np.array([[1, 3],
                [4, 1]])

arr1 = np.array([[1, 2],
                 [2, 5]])
# Use numpy.dot() function
# Get the product of two arrays
arr2 = np.dot(arr,arr1)
print(arr2)

# Output :
# [[ 7 17]
# [ 6 13]]

4. Sử dụng matmul() – Nhân hai mảng NumPy

Phương pháp ____13 được sử dụng để tìm tích ma trận của hai mảng. Hàm matmul() lấy mảng 1 và mảng 2 làm đối số và trả về phép nhân ma trận của các mảng NumPy đầu vào. Một vô hướng chỉ được tạo ra khi cả mảng1 và mảng2 đều là vectơ 1 chiều


# Use numpy.matmul() function
# Get the product 
arr2 = np.matmul(arr,arr1)
print(arr2)

# Output :
# [[ 7 17]
# [ 6 13]]

5. Phần kết luận

Trong bài viết này, tôi đã giải thích khái niệm về phép nhân ma trận Python NumPy và cách sử dụng nó bằng cách sử dụng hàm


import numpy as np
# Create a numpy two dimensional arrays
arr = np.array([[2, 4, 3, 1],[2, 3, 6, 1]])
arr1 = np.array([[2, 1, 5, 2],[4, 8, 3, 2]])
                 
# Use numpy.mutiply() function and 
# get the matrix multiplication
arr2 = np.multiply(arr, arr1)
print(arr2)

# Output :
# [[ 4  4 15  2]
# [ 8 24 18  2]]
0,

import numpy as np
# Create a numpy two dimensional arrays
arr = np.array([[2, 4, 3, 1],[2, 3, 6, 1]])
arr1 = np.array([[2, 1, 5, 2],[4, 8, 3, 2]])
                 
# Use numpy.mutiply() function and 
# get the matrix multiplication
arr2 = np.multiply(arr, arr1)
print(arr2)

# Output :
# [[ 4  4 15  2]
# [ 8 24 18  2]]
5 và

import numpy as np
# Create a numpy two dimensional arrays
arr = np.array([[2, 4, 3, 1],[2, 3, 6, 1]])
arr1 = np.array([[2, 1, 5, 2],[4, 8, 3, 2]])
                 
# Use numpy.mutiply() function and 
# get the matrix multiplication
arr2 = np.multiply(arr, arr1)
print(arr2)

# Output :
# [[ 4  4 15  2]
# [ 8 24 18  2]]
6 với các ví dụ

Bạn có thể nhân bất kỳ ma trận nào với các kích thước khác nhau không?

Bạn chỉ có thể nhân hai ma trận nếu kích thước của chúng tương thích , có nghĩa là số cột trong ma trận thứ nhất bằng với số hàng trong ma trận thứ hai.

Bạn có thể nhân các ma trận với các ma trận khác nhau không?

Vì vậy, câu trả lời cho câu hỏi của bạn là, không thể nhân một ma trận với một ma trận có số hàng khác thì ma trận đầu tiên có các cột .