python构建矩阵 x y_python中的广播机制

一、上网查python的广播机制是在处理两个矩阵相减的时候,具体看下面的代码。

import numpy as np

b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

b_mean = np.mean(b, axis =0 )
print(b_mean) 

b_std = np.std(b, axis = 0)
print(b_std)

normalize = (b - b_mean) / b_std
print(normalize)

输出结果:

b_mean is
 [4. 5. 6.]
b_std is
 [2.44948974 2.44948974 2.44948974]
normalize is
 [[-1.22474487 -1.22474487 -1.22474487]
 [ 0.          0.          0.        ]
 [ 1.22474487  1.22474487  1.22474487]]

通过以上代码可以看到,初始化的b是一个 3 * 3的矩阵。b的均值是一个 3 * 1的向量。最初我以为只有维数相同的张量才能做加减运算,后来一查是python的广播机制。

二、广播机制

先看代码

x = np.array([[1], [2], [3]])
print(x)
y = np.array([0, 1, 2])
print(y)
print("x - y = ", x - y)

输出结果

x is
 [[1]
 [2]
 [3]]
y is
 [0 1 2]
x - y is
  [[ 1  0 -1]
 [ 2  1  0]
 [ 3  2  1]]

这里的x是 3 * 1的矩阵,y是 1 * 3的矩阵,在进行相减的时候将x变换成与y维数相同的矩阵x'(3 * 3)矩阵。

x' = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]

然后y广播成3 * 3的矩阵y'。

y' = [[0, 1, 2], [0, 1, 2], [0, 1, 2]]

x' - y'得到就是相应结果。

三、参考文章

Python 中矩阵或者数组相减的法则​blog.csdn.net
77deaca58a89db7d06aa7ce8b211b4d3.png
numpy之矩阵相减_yangwang的博客-CSDN博客​blog.csdn.net
da16c8045b16436fce89f1f8aaa5b49b.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值