首页
高薪实战项目班
Linux云计算SRE
Python全能开发
云原生微服务实战
go高并发实战
网络安全攻防渗透
DevOps项目实战
考试认证
阿里云认证
RHCE
CKA/CKS
CISP
Nginx
技术干货
Linux学习教程
Linux云计算实战
python学习教程
Python开发实战
网络安全教程
网络安全
go学习教程
go开发实战
云原生及微服务
大数据学习
数据库
学习体验
就业喜讯
马哥教育动态
马哥头条
企业名师
一线企业教练
开课动态
就业喜讯
行业合作
产品升级
校企合作
官方支付通道
马哥教育官网
首页
技术干货
Linux云计算
Numpy怎么使用最高效,5个技巧送给你!
Linux云计算
,
技术干货
,
马哥教育快报
2021年4月19日 上午10:30
3925
本文作者将分享 5 个优雅的 Python Numpy 函数,有助于高效、简洁的数据处理。
在 reshape 函数中使用参数-1
Numpy 允许我们根据给定的新形状重塑矩阵,新形状应该和原形状兼容。有意思的是,我们可以将新形状中的一个参数赋值为-1。这仅仅表明它是一个未知的维度,我们希望 Numpy 来算出这个未知的维度应该是多少:Numpy 将通过查看数组的长度和剩余维度来确保它满足上述标准。让我们来看以下例子:
维度为-1 的不同 reshape 操作图示。
假设我们给定行参数为 1,列参数为-1,那么 Numpy 将计算出 reshape 后的列数为 8。
假设我们给定行参数为-1,列参数为 1,那么 Numpy 将计算出 reshape 后的行数为 8。
下面的代码也是一样的道理。
这也适用于任何更高维度张量的 reshape,但是只有一个维度的参数能赋值为-1。
如果我们尝试 reshape 不兼容的形状或者是给定的未知维度参数多于 1 个,那么将会报错。
总而言之,当试图对一个张量进行 reshape 操作时,新的形状必须包含与旧的形状相同数量的元素,这意味着两个形状的维度乘积必须相等。当使用 -1 参数时,与-1 相对应的维数将是原始数组的维数除以新形状中已给出维数的乘积,以便维持相同数量的元素。
Argpartition:
在数组中找到最大的 N 个元素。
Numpy 的 argpartion 函数可以高效地找到 N 个最大值的索引并返回 N 个值。在给出索引后,我们可以根据需要进行值排序。
Clip:
如何使数组中的值保持在一定区间内
在很多数据处理和算法中(比如强化学习中的 PPO),我们需要使得所有的值保持在一个上下限区间内。Numpy 内置的 Clip 函数可以解决这个问题。Numpy clip () 函数用于对数组中的值进行限制。给定一个区间范围,区间范围外的值将被截断到区间的边界上。例如,如果指定的区间是 [-1,1],小于-1 的值将变为-1,而大于 1 的值将变为 1。
Clip 示例:限制数组中的最小值为 2,最大值为 6。
Extract:
从数组中提取符合条件的元素
我们可以使用 Numpy extract () 函数从数组中提取符合条件的特定元素。
同样地,如果有需要,我们可以用 AND 和 OR 组合的直接条件,如下所示:
setdiff1d:
如何找到仅在 A 数组中有而 B 数组没有的元素
返回数组中不在另一个数组中的独有元素。这等价于两个数组元素集合的差集。
小结
以上 5 个 Numpy 函数并不经常被社区使用,但是它们非常简洁和优雅。在我看来,我们应该尽可能在出现类似情况时使用这些函数,不仅因为代码量更少,更因为它们是解决复杂问题的绝妙方法。
选自TowardsDataScience,作者:Baijayanta Roy
机器之心编译
(侵删)
相关新闻
2017 年度最佳 Linux 桌面发行版出炉+Zabbix 3.4.7 发布【马哥教育早报-203期】
【马哥教育早报-084期】“瞬间传送”成现实:潘建伟团队实现地星间量子隐形传态
腾讯回应”微信发送原图泄露隐私”+:新疗法治癌症47.5万美元 一个月无效不付款
VSCode 编辑器安装和配置
谷歌4000员工联名要求退出“战争业务”【马哥教育快报256期】
一文讲清Python的7大学习路线(建议收藏)
Linux基础入门之你的Ubuntu还可以这么美
Python 3.10终于来了,switch语法终于出现
详解python 破解网站反爬虫的两种简单方法
何为DevOps?如何成为一名DevOps工程师?
历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!