jupyter notebook多维数组运算_Numpy数组间运算

一、场景

38baf56bc5c90aeb629634f1f1c963fe.png

数据:

[[80,86], [82,80], [85,78], [90,90], [86,82], [82,90], [78,80], [92,94]]

二、数组与数的运算

arr = np.array([[1,2,3,2,1,4], [5,6,1,2,3,1]]) arr + 1 arr / 2 # 可以对比python列表的运算,看出区别 a = [1,2,3,4,5] a * 3

三、数组与数组的运算

arr1 = np.array([[1,2,3,2,1,4], [5,6,1,2,3,1]]) arr2 = np.array([[1, 2, 3, 4], [3, 4, 5, 6]])

4b10952d831f903fc4b082444978ff7e.gif

上面这个能进行运算吗,结果是不行的!

四、广播机制

执行 broadcast 的前提在于,两个 ndarray 执行的是 element-wise的运算,而不是矩阵乘法的运算,矩阵乘法运算时需要维度之间严格匹配。Broadcast机制的功能是为了方便不同形状的array(numpy库的核心数据结构)进行数学运算

当操作两个数组时,numpy会逐个比较它们的shape(构成的元组tuple),只有在下述情况下,两个数组才能够进行数组与数组

  • 维度相等
  • shape(其中相对应的一个地方为1)

例如:

Image (3d array): 256 x 256 x 3 Scale (1d array): 3 Result (3d array): 256 x 256 x 3 A (4d array): 9 x 1 x 7 x 1 B (3d array): 8 x 1 x 5 Result (4d array): 9 x 8 x 7 x 5 A (2d array): 5 x 4 B (1d array): 1 Result (2d array): 5 x 4 A (2d array): 15 x 3 x 5 B (1d array): 15 x 1 x 1 Result (2d array): 15 x 3 x 5

如果是下面这样,则不匹配:

A (1d array): 10 B (1d array): 12 A (2d array): 2 x 1 B (3d array): 8 x 4 x 3

这样就可以运算了:

arr1 = np.array([[1,2,3,2,1,4], [5,6,1,2,3,1]]) arr2 = np.array([[1], [3]])

五、矩阵运算

现在再次回到上面的学生问题?

ee1f633f69f41a3acfa9eca3f273eff7.png

4ee9325561de3f0c996438cf106a80fa.png

如何能够达到我们想要的效果,直接得出每个学生的成绩!!!!这是机器学习最常见的问题之一,如何进行数据运算

5.1、什么是矩阵

矩阵,英文matrix,和array的区别矩阵必须是2维的,但是array可以是多维的。

  • np.mat()
    • 将数组转换成矩阵类型

a = np.array([[80,86], [82,80], [85,78], [90,90], [86,82], [82,90], [78,80], [92,94]]) b = np.array([[0.7],[0.3]]) np.mat(a)

5.2、矩阵乘法运算

eabca9fa4ce83f86d33abb6b8d0c3ffd.png

4ee9325561de3f0c996438cf106a80fa.png

必须符合上面的式子,否则运算出错.

在进行矩阵运算的时候,可以直接使用一个乘法运算API

  • mp.matmul

a = np.array([[80,86], [82,80], [85,78], [90,90], [86,82], [82,90], [78,80], [92,94]]) b = np.array([[0.7],[0.3]]) np.matmul(a, b)

5.3、矩阵应用场景

大部分机器学习算法需要用到

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值