Python 中数组、矩阵和元素乘法区别(dot、multiply等)

元素乘法:常用 a*b 或 np.multiply(a,b) 完成元素乘法,即对应元素相乘

矩阵乘法:常用np.dot(a,b) 或 a.dot(b)或 np.matmul(a,b) 或a@b或a*b(ab为矩阵)完成,查看                  矩阵乘法

特别注意: *   np.array (数组)中为元素乘法(对应元素相乘),在 np.matrix(矩阵中)中为矩阵乘法!

如果不理解没关系,看下下面的例子你应该会秒懂。


元素乘法

可以用 a*b 或 np.multiply(a,b) 完成元素乘法。

表示a*b,如2*3=6;这种情况比较简单,相信你看下下面的代码就秒懂。

import numpy as np
a = 2
b = 3
print('np.multiply(a,b)的结果为:', np.multiply(a, b))

输出结果:
np.multiply(a,b)的结果为: 6

矩阵乘法

常用np.dot(a,b) 或 a.dot(b)或 np.matmul(a,b) 完成。矩阵乘法就是线性代数所学的矩阵乘法,忘了的话可以复习下,查看矩阵乘法
注意: *   np.array 中为元素乘法,在 np.matrix 中为矩阵乘法!

                如果还不理解,先看下下面的例子你会秒懂。

import numpy as np

a = np.arange(1, 5).reshape(2, 2)  # 生成一维数组并1-4,并重构为2*2的数组
b = np.arange(1, 5).reshape(2, 2)  # 生成一维数组并1-4,并重构为2*2的数组
print('这是上面生成的数组a:\n', a)  # 输出数组a,看下它长什么样
print('这是上面生成的数组b:\n', b)  # 输出数组b,看下它长什么样

# 当a,b为数组,执行*运算(此时为元素乘法)
print('当a和b为数组时a*b的结果为:\n', a * b)

# 将a,b转化为矩阵后,再执行*运算(此时为矩阵乘法),你就会发现与上面的区别
a = np.matrix(a)  # 将b转化为矩阵
b = np.matrix(b)  # 将b转化为矩阵
print('当a和b为矩阵时a*b的结果为:\n', a * b)


输出结果如下:

这是上面生成的数组a:
 [[1 2]
 [3 4]]

这是上面生成的数组b:
 [[1 2]
 [3 4]]

当a和b为数组时a*b的结果为(a和b按对应元素相乘):
 [[ 1  4]
 [ 9 16]]

当a和b为矩阵时a*b的结果为(a和b按矩阵乘法相乘):
 [[ 7 10]
 [15 22]]

因此,在使用*运算要特别注意, np.array(数组) 中为对应元素相乘,在 np.matrix(矩  阵) 中为矩阵乘法!

附测试代码:

import numpy as np

a = np.arange(1, 5).reshape(2, 2)  # 生成一维数组并1-4,并重构为2*2的数组
b = np.arange(1, 5).reshape(2, 2)  # 生成一维数组并1-4,并重构为2*2的数组
print('这是上面生成的数组a:\n', a)  # 输出数组a,看下它长什么样
print('这是上面生成的数组b:\n', b)  # 输出数组b,看下它长什么样

# 当a,b为数组,执行*运算(此时为元素乘法)
print('当a和b为数组时a*b的结果为:\n', a * b)

# 将a,b转化为矩阵后,再执行*运算(此时为矩阵乘法),你就会发现与上面的区别
a = np.matrix(a)  # 将a转化为矩阵
b = np.matrix(b)  # 将b转化为矩阵
print('当a和b为矩阵时a*b的结果为:\n', a * b)

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python,可以使用@符号进行矩阵乘法运算。具体用法如下: import numpy as np # 2-D array: 2 x 3 two_dim_matrix_one = np.array([[1, 2, 3], [4, 5, 6]]) # 2-D array: 3 x 2 two_dim_matrix_two = np.array([[1, 2], [3, 4], [5, 6]]) # 使用@符号进行矩阵乘法运算 matrix_multi_res = two_dim_matrix_one @ two_dim_matrix_two print('matrix_multi_res: %s' %(matrix_multi_res)) 上述代码,我们首先导入numpy库,并定义了两个二维矩阵two_dim_matrix_one和two_dim_matrix_two。然后,我们使用@符号进行矩阵乘法运算,将结果赋值给matrix_multi_res变量。最后,我们打印出结果matrix_multi_res。 请注意,@符号只在Python 3.5及以上版本支持。如果你使用的是更低版本的Python,可以使用np.dot()函数来进行矩阵乘法运算。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python 的几种矩阵乘法 np.dot, np.multiply, *](https://blog.csdn.net/u012609509/article/details/70230204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python数组矩阵乘法及使用总结](https://blog.csdn.net/manjhOK/article/details/80017892)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值