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

参考numpy基础属性方法随机整理(8):矩阵乘法 及 对应元素相乘的矩阵乘法 - 云+社区 - 腾讯云

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


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

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) 矩阵乘法和数组乘法

在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wanderer001

ROIAlign原理

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值