numpy array和mat的乘法

总结:pytorch和numpy中,星号*都表示矩阵点对点相乘;matmul都表示矩阵乘法。

=======================================================================================

1.mat()函数中矩阵的乘积可以使用(星号) *  或 .dot()函数,其结果相同。而矩阵对应位置元素相乘需调用numpy.multiply()函数。

1
2
3
4
5
6
7
8
9
a = np.mat([1, 2, 3])
b = np.mat([1, 2, 3])
c = np.mat([[1],
            [2],
            [3]])
 
ele_multiply = np.multiply(a, b)
mat_multiply = a*c
dot_multiply = a.dot(c)

结果如下:

2.array()函数中矩阵的乘积可以使用np.matmul或者.dot()函数。而星号乘 (*)则表示矩阵对应位置元素相乘,与numpy.multiply()函数结果相同。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import numpy as np
 
# np.dot示例----------------------------------------------------
a = np.array([[1, 2, 3],
              [4, 5, 6]])
b = np.array([0, 1, 2])
print(np.dot(a, b.T))   # array([ 8, 17]).  shape (2,)
 
c = np.array([[0, 1, 2],
              [0, 1, 2]])
print(np.dot(a, c.T))   # array([[ 8,  8],
                        #        [17, 17]])    shape(2, 2)
 
# *示例----------------------------------------------------
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[0, 0, 0], [1, 1, 1]])
print(a*b)   # array([[0, 0, 0],
             #        [4, 5, 6]])    shape(2, 3)
 
c = np.array([2])
print(a*c)  # array([[ 2,  4,  6],
            #        [ 8, 10, 12]])   shape(2, 3)
 
d = 2
print(a*d)  # array([[ 2,  4,  6],
            #        [ 8, 10, 12]])   shape(2, 3)

 

posted @   Picassooo  阅读(800)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示