当前位置:网站首页>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:要按哪个轴进行拼接
例子:
官方链接:
待更新...
边栏推荐
- This in js points to the prototype object
- [swagger close] The production environment closes the swagger method
- 为什么bash中的read要配合while才能读取/dev/stdin的内容
- UiBot has an open Microsoft Edge browser and cannot perform the installation
- Several forms of Attribute Changer
- MYSQL事务与锁问题处理
- [windows]--- SQL Server 2008 super detailed installation tutorial
- js中的this指向与原型对象
- jenkins +miniprogram-ci upload WeChat applet with one click
- quick-3.5 lua调用c++
猜你喜欢
The feign call fails, JSON parse error Illegal character ((CTRL-CHAR, code 31)) only regular white space (r
DC-CDN学习笔记
为什么bash中的read要配合while才能读取/dev/stdin的内容
Principle analysis of famous website msdn.itellyou.cn
Eternal blue bug reappears
MySQL高级SQL语句(二)
Xiaomi mobile phone SMS location service activation failed
Nmap的下载与安装
How MySQL - depots table?A look at will understand
unicloud cloud development record
随机推荐
Several solutions for mysql startup error The server quit without updating PID file
Tencent Cloud Lightweight Server deletes all firewall rules
For penetration testing methods where the output point is a timestamp (take Oracle database as an example)
VS connects to MYSQL through ODBC (2)
quick-3.5 lua调用c++
cocos2d-x-3.x 修改和纪录
MySQL面试题大全(陆续更新)
cocos2d-x-3.2 image graying effect
Podspec automatic upgrade script
活体检测PatchNet学习笔记
Eternal blue bug reappears
Gradle sync failed: Uninitialized object exists on backward branch 142
function in js
This in js points to the prototype object
场效应管 | N-mos内部结构详解
Multi-Modal Face Anti-Spoofing Based on Central Difference Networks学习笔记
softmax函数详解
YOLOX中的SimOTA
sqlmap injection tutorial common commands
js中的break与continue退出