当前位置:网站首页>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:要按哪个轴进行拼接
例子:

官方链接:
待更新...
边栏推荐
- Understanding of objects and functions in js
- Sqlite column A data is copied to column B
- 动态规划(一)| 斐波那契数列和归递
- flutter 混合开发 module 依赖
- Attribute Changer的几种形态
- SSH自动重连脚本
- npm WARN config global `--global`, `--local` are deprecated. Use `--location solution
- 腾讯云GPU桌面服务器驱动安装
- Gradle sync failed: Uninitialized object exists on backward branch 142
- Access database query
猜你喜欢

Nmap的下载与安装

Sqlite A列数据复制到B列

RuntimeError: CUDA error: no kernel image is available for execution on the device问题记录

softmax函数详解

活体检测PatchNet学习笔记

js中的this指向与原型对象
![[windows]--- SQL Server 2008 super detailed installation tutorial](/img/b7/dc802c63b07edc4298b6e6b90d865c.png)
[windows]--- SQL Server 2008 super detailed installation tutorial

JS写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数JS

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

Global scope and function scope in js
随机推荐
MySQL面试题大全(陆续更新)
cocos create EditBox 输入文字被刘海屏遮挡修改
TransactionTemplate transaction programmatic way
数据库 | SQL查询进阶语法
一个简单的bash转powershell案例
function in js
sqlmap injection tutorial common commands
动态规划(一)| 斐波那契数列和归递
著名网站msdn.itellyou.cn原理分析
RuntimeError: CUDA error: no kernel image is available for execution on the device问题记录
Podspec verification dependency error problem pod lib lint , need to specify the source
sql 添加 default 约束
禅道安装及使用教程
Flow control statement in js
Tencent Cloud GPU Desktop Server Driver Installation
VS通过ODBC连接MYSQL(一)
configure:error no SDL library found
Sqlite A列数据复制到B列
SSH自动重连脚本
cocos2d-x-3.2 不能混合颜色修改