首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >numpy基础属性方法随机整理(8):矩阵乘法 及 对应元素相乘的矩阵乘法

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

作者头像
狼啸风云
修改2022-09-02 20:10:04
修改2022-09-02 20:10:04
2K00
代码可运行
举报
运行总次数:0
代码可运行

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

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

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(对应元素相乘)

代码语言:javascript
代码运行次数:0
运行
复制
# -*- 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) 矩阵乘法和数组乘法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/12/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1) matrix multiplication
  • 2) element-wise product : 矩阵对应元素相乘
  • 3) 矩阵乘法和数组乘法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档