> 文章列表 > Numpy从入门到精通——Numpy运算符|批处理

Numpy从入门到精通——Numpy运算符|批处理

嘿,朋友们!今天咱们来聊聊Numpy的运算符和批处理,这玩意儿不仅仅是代码里的“加减乘除”,它可是深度学习中“底层打工人”的必备技能!你可能会问,这些运算符到底有啥用?别急,听我慢慢道来。

首先,Numpy的星乘(*)可不是简单的乘法,它是逐元素相乘,就像超市里每个商品都打折一样,每个数字都要“享受”这个待遇。比如你有两个数组,A和B,星乘就是让A的每个元素和B的对应元素“单挑”,最后得出一份“战果”。你看,代码里A * B和np.multiply(A, B)效果一样,是不是很酷?

问题来了,为啥我们要用星乘而不是普通的乘法呢?这就涉及到了批处理的概念。想象一下,你有一堆数据要处理,难道你要一个个手动操作吗?当然不!Numpy的广播机制就是你的“救星”,它能让一个标量(比如2.0)和整个数组“谈一场恋爱”,让每个元素都受益。比如A*2.0,数组A的每个元素都翻倍了,这不就是“批量加工”嘛!

更进一步,激活函数也能用到广播机制。比如sigmoid、relu、softmax这些常见的“网红函数”,它们背后的计算逻辑就是靠着Numpy的广播机制实现“一招鲜,吃遍天”。你只需定义好函数,Numpy就能帮你把一堆数据“自动处理”,省时省力,简直是程序员的“福音”!”

所以,别小看这些运算符,它们可是你踏入深度学习领域的“敲门砖”。掌握了这些,你就能像“魔法师”一样,轻松处理海量数据,让代码跑得更快、更高效。怎么样,是不是有点心动了?赶紧去试试吧,说不定下一个“AI大神”就是你!

Numpy从入门到精通——Numpy运算符|批处理

这个专栏名为《Numpy从入门到精通》,顾名思义,是记录自己学习numpy的学习过程,也方便自己之后复盘!为深度学习的进一步学习奠定基础!希望能给大家带来帮助,爱睡觉的咋祝您生活愉快! 这一篇介绍《Numpy从入门到精通—— Numpy运算符|批处理》

在前面几次分享中,我们学习了Numpy的矩阵生成,数据读存、获取、广播机制等,这一次我们进一步学习Numpy的算数运算符以及批处理

文章目录

  • 一.星乘(*)
  • 二. 点乘(.)
  • 三.批处理

一.星乘(*)

星乘也称为对应元素相乘、逐元素相乘,对应的函数为np.multiply(),输出的大小与相乘数组或者矩阵的大小一致:

  • numpy.multiply(x1,x2,/,out=None,*,where=True,casting=“same_kind”,order=“k”,dtype=None,subok=True[,signature,extobj])

下面用程序进行说明:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_14.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/21 20:41 
"""
import numpy as np
A = np.array([[1, 2], [-1, 4]])
B = np.array([[2, 0], [3, 4]])
print(A * B)
#或另一种表示方法
print(np.multiply(A, B))

输出为:

[[ 2  0][-3 16]]
[[ 2  0][-3 16]]

可以看到,np.multiply()与*效果是一样的,numpy不仅可以对数组进行对应的元素相乘,也可以与单一的数值进行运算。运算时,numpy数组的每一个元素与标量进行运算,这也是广播机制的应用。下面通过代码进行说明:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习 
@File    :task_15.py
@IDE     :PyCharm 
@Author  :咋
@Date    :2023/4/21 20:51 
"""
import numpy as np
A = np.array([1,2,3,4,5,6])
print(A*2.0)
print(A/2.0)

输出为下:

[ 2.  4.  6.  8. 10. 12.]
[0.5 1.  1.5 2.  2.5 3. ]

推而广之,一些激活函数也是可以基于np的广播机制特性的。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :numpy学习
@File :task_16.py
@IDE :PyCharm
@Author :咋
@Date :2023/4/21 20:56
"""

import numpy as np
X = np.random.rand(2, 3)def sigmoid(x):return 1 / (1 + np.exp(-x))def relu(x):return np.maximum(0, x)def softmax(x):return np.exp(x) / np.sum(np.exp