numpy基础属性方法随机整理(8):矩阵乘法 及 对应元素相乘的矩阵乘法

numpy 专栏收录该内容
17 篇文章 1 订阅

矩阵运算基础知识参考:矩阵的运算及其规则


  • 注意区分数组和矩阵的乘法运算表示方法(详见第三点代码)

1) matrix multiplication

矩阵乘法: (m,n) x (n,p) --> (m,p) # 矩阵乘法运算前提:矩阵1的列=矩阵2的行
3种用法: np.dot(matrix_a, matrix_b) == matrix_a @ matrix_b == matrix_a * matrix_b

2) element-wise product : 矩阵对应元素相乘

1种用法:np.multiply(matrix_c, matrix_d)
对于nd.array()类型而言,数组 arrA * arrB 只能element-wise produt(对应元素相乘)

# -*- coding: utf-8 -*-
"""
Created on Thu Jul 26 14:22:40 2018

@author: Administrator
"""

import numpy as np

a = np.array([[1,2],[3,4],[11,12]])
b = np.array([[5,6,13],[7,8,14]])
c = np.array([[1,2,13],[3,4,25],[11,12,23]])
d = np.array([[5,6,2],[7,8,29],[13,14,15]])

matrix_a = np.matrix(a)         # (3,2)
matrix_b = np.matrix(b)         # (2,3)
matrix_c = np.matrix(c)         # (3,3)
matrix_d = np.matrix(d)         # (3,3)

print(type(a),type(matrix_a))  # <class 'numpy.ndarray'> <class 'numpy.matrixlib.defmatrix.matrix'>
mat_a = np.mat(a)
print(type(a),type(matrix_a))  # <class 'numpy.ndarray'> <class 'numpy.matrixlib.defmatrix.matrix'>



'''
# 1) matrix multiplication
矩阵乘法: (m,n) x (n,p) --> (m,p)    # 矩阵乘法运算前提:矩阵1的列=矩阵2的行
3种用法: np.dot(matrix_a, matrix_b) == matrix_a @ matrix_b == matrix_a * matrix_b
'''
method_1 = matrix_a @ matrix_b
method_2 = np.dot(matrix_a, matrix_b)

print(method_1)
#[[ 19  22  41]
# [ 43  50  95]
# [139 162 311]]
print(method_2 == method_1)
#[[ True  True  True]
# [ True  True  True]
# [ True  True  True]]
print(matrix_c * matrix_d == matrix_c @ matrix_d)
#[[ True  True  True]
# [ True  True  True]
# [ True  True  True]]


'''
# 2) element-wise product : 矩阵对应元素相乘
1种用法:np.multiply(matrix_c, matrix_d)
对于nd.array()类型而言,数组 arrA * arrB 只能element-wise produt(对应元素相乘) 
'''
print(matrix_c, matrix_d, sep='\n')
#[[ 1  2 13]
# [ 3  4 25]
# [11 12 23]]
#[[ 5  6  2]
# [ 7  8 29]
# [13 14 15]]

method_1 = np.multiply(matrix_c, matrix_d)      # 对应位置元素相乘

print(method_1)
#[[  5  12  26]
# [ 21  32 725]
# [143 168 345]]

3) 矩阵乘法和数组乘法

在这里插入图片描述

  • 2
    点赞
  • 0
    评论
  • 10
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

煲饭酱

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值