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的算数运算符以及批处理!
文章目录
- 一.星乘(*)
- 二. 点乘(.)
- 三.批处理
一.星乘(*)
星乘也称为对应元素相乘、逐元素相乘,对应的函数为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