当前位置:网站首页>Numpy常用函数
Numpy常用函数
2022-07-31 05:16:00 【王大队长】
本文记录Numpy常用函数,个人应用场景为图像处理、深度学习、计算机视觉
目录
在数组后面加None,升维来产生两个一维数组相互作用的二维数组(描述的不好,直接看下面例子)
在数组后面加None,升维来产生两个一维数组相互作用的二维数组(描述的不好,直接看下面例子)
比如我们有两个个数组a=[1,2,3]以及b=[2,3,4],现在我们想求
,我们可以这么做:

注意到我们的关键步骤是a = a[:,None]来升维,再利用广播机制求得我们想要的a*b再求和
np.nonzero
numpy.nonzero(a)
参数:
a:输入array
返回返回包含非零元素下标的元组,对于a的每一个维度,输出包含该维度中非零元素的索引
示例:
虽然可以使用 a[nonzero(a)] 获得非零值,但建议使用 x[x.astype(bool)] 或 x[x != 0] 代替,这将正确处理 0-d 数组。

一个常用的做法是配合布尔判断式使用返回满足判断式的元素下标:

使用下面方法进行取得下标对应的值(第二种更好用):

总结:该函数可用来返回非零元素的下标(二维的输入,返回二维的坐标),并且可以配合布尔判断式使用。
官方文档链接:
np.where
numpy.where(condition, [x, y, ]/)
参数:
condition:条件
返回:如果为condition为True,则产生x,否则产生y。


注:当参数仅为condition时,就完全与使用布尔表达式的np.nonzero一致了
如我们可以用bp.where生成一个分段函数:

def weight(t):
a = -1
w = np.zeros_like(t)
at = np.abs(t)
ind = np.where(at<=1)
w[ind] = ((a+2)*(at**3) - (a+3)*(at**2) + 1)[ind]
ind = np.where((at>1)&(at<=2))
w[ind] = (a*(at**2) - 5*a*(at**2) + 8*a*at - 4*a)[ind]
return w官方文档链接:
np.tile
numpy. tile ( A, reps )该函数把数组沿各个方向复制,复制的方向取决于reps
当reps仅为一个数:沿着原方向复制且不升维

当reps 为一个数组,如 a = np.array([0,1,2]), np.tile(a,(2,1))就是把a先沿x轴复制2倍(这里的x轴和y轴个人记作图像中的x轴和y轴,即x轴朝下,y轴朝右), 再把结果沿y方向复制1倍,即没有复制,仍然是 [0,1,2],即最终得到
array([[0,1,2],
[0,1,2]])


官方文档链接:
np.minimum
numpy.minimum(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = <ufunc 'minimum'>
比较两个数组并返回一个包含元素最小值的新数组。如果要比较的元素之一是 NaN,则返回该元素。如果两个元素都是 NaN,则返回第一个。后一种区别对于复数 NaN 很重要,复数 NaN 被定义为实部或虚部中的至少一个是 NaN。最终效果是传播了 NaN。
参数:
x1,x2:要比较的两个数组(两个数组的形状必须相同或者能够广播成相同的形状)
out:将结果存放到自己定义的out数组(可选)
注:当 x1 和 x2 都不是 NaN 时,np.minimum相当于 np.where(x1 <= x2, x1, x2),但它更快并且可以进行正确的广播。
示例:

np.concatenate
numpy.concatenate((a1, a2, ...), axis=0, out=None, dtype=None, casting="same_kind")
作用:将一系列array按给定的axis进行拼接(注意和np.stack的区别,np.stack可以按新给的维度进行拼接!)
参数:
(a1,a2,..):一系列array
axis:要按哪个轴进行拼接
例子:

官方链接:
待更新...
边栏推荐
猜你喜欢

npm WARN config global `--global`, `--local` are deprecated. Use `--location solution

多元线性回归方程原理及其推导

Using IIS10 to build an asp website in win11

js中的对象与函数的理解

腾讯云GPU桌面服务器驱动安装

Access database query

一文速学-玩转MySQL获取时间、格式转换各类操作方法详解

jenkins +miniprogram-ci upload WeChat applet with one click

cv2.imread()

softmax函数详解
随机推荐
对js的数组的理解
Understanding of objects and functions in js
纯shell实现文本替换
Several forms of Attribute Changer
VS connects to MYSQL through ODBC (2)
qt:cannot open C:\Users\某某某\AppData\Local\Temp\main.obj.15576.16.jom for write
qt:cannot open C:\Users\XX\AppData\Local\Temp\main.obj.15576.16.jom for write
Understanding of js arrays
unicloud cloud development record
quick lua加密
浅谈对分布式模式下CAP的理解
朴素贝叶斯文本分类(代码实现)
SSH自动重连脚本
VS通过ODBC连接MYSQL(一)
数据库 | SQL查询进阶语法
jenkins +miniprogram-ci 一键上传微信小程序
VS2017连接MYSQL
js中的对象与函数的理解
The feign call fails, JSON parse error Illegal character ((CTRL-CHAR, code 31)) only regular white space (r
CMOS管原理,及其在推挽电路中的应用