当前位置: 首页 > 科技观察

NumPy迎来大版本更新,新增函数注解和滑动窗口视图函数

时间:2023-03-19 17:35:47 科技观察

本文经AI新媒体量子比特(公众号ID:QbitAI)授权转载,转载请联系出处。近日,NumPy推出了最新版本——NumPy1.20。作为Python最重要的扩展库之一,也是机器学习入门的必备工具。该版本一经发布,一度登上HackerNews等社区的热搜榜。这个版本号称是迄今为止最大的版本,共有184人贡献了约684个PR,支持的Python版本为3.7-3.9。请注意,不支持Python3.6。此版本的亮点如下:NumPy函数注释。扩展SIMD使用并提高ufunc的执行速度。文档改进,包括大约185个PR合并对即将推出的Cython3.0的初步支持。提供数组的滑动窗口视图。三大新功能网络版主要有三大新功能。首先,random.Generator类有一个新的排列函数。新函数与shuffle和permutation的不同之处在于给定轴索引的子数组被打乱。例如,现在可以缩放二维数组的行或列。第二个是sliding_window_view,提供NumPy数组的滑动窗口视图。这个特性适合在多维度使用,可以显式指定轴,多次使用同一个轴,移动多个元素的视图等。第三个,numpy.broadcast_shapes,是一个全新的面向用户的函数,获取来自给定形状元组的相互广播的形状。除了新功能外,还有一系列改进。例如,启用多平台SIMD编译器优化。其中包括新的构建参数、跨架构CPU调度程序、新的自动生成的C标头、向numpyumath模块添加新属性以及在PytestTester运行期间打印支持的CPU功能。作为另一个示例,不推荐使用np.int别名。本来np.int是int的别名,但是经常让新手迷惑,而且它最初是因为历史原因而存在的。除了np.int之外,还有一个已弃用的别名列表。(其中第三列是备用NumPy名称)以及不完全匹配、模式和搜索端的numpy.dual模块已弃用。对于新版本的发布,不少网友表示非常期待其中的新功能。例如,类型注释。类型注释对我来说非常重要。如果你更关心SIMD,你可能会考虑Julia。有网友点赞了“滑动窗口视图”这一新功能。分析数据时经常使用滑动窗口。之前用as_strided可以实现,但是这种方法太麻烦了。现在这个新功能显然更简单了。