NumPy迎规模最大版本更新,新增函数注释等功能,支持Python 3.7+

机器之心 2021-02-23 13:24:13
numpy 版本 更新 最大 规模


机器之心报道

编辑:陈萍、杜伟

NumPy 1.20.0 版本上线,最新亮点包括 NumPy 函数注释、为数组提供滑动窗口视图等。

作为 Python 语言的一个扩展程序库,NumPy 支持大量的维度数组与矩阵运算,也针对数组运算提供大量的数学函数库。自初代版本上线之后,NumPy 已经成为 Python 科学计算的扩展包。如今,在计算多维数组和大型数组方面,它是使用最广的。此外,它还提供多个函数,操作起数组来效率很高,还可用来实现高级数学运算。

近日,NumPy 迎来了更新。NumPy 官方表示,NumPy v1.20 是迄今为止规模最大的版本更新 ,共计 184 位开发者贡献了约 684 条 PR,新增了类型注释、滑动窗口视图等功能。

新版本支持 Python 3.7-3.9,但不支持 Python 3.6。主要亮点如下:

  • NumPy 函数注释;
  • 扩大 SIMD 使用范围,提升 ufuncs(Universal Functions)的执行速度;
  • 更改数据类型和强制转换实现的准备工作,以便为扩展数据类型提供更简单的途径;
  • 文档改进,包括大约 185 个 PR 合并;
  • 关于移除 Python 2.7 的进一步清理(cleanups), 这样可以提高代码的可读性并消除技术负担;
  • 对即将到来的 Cython 3.0 提供初步支持。

上线新函数

新发布的 NumPy 1.20.0 版本包括以下三大新函数:

(1)random.Generator 类有一个新函数 permuted。新函数与 shuffle 和 permutation 不同,给定轴索引的子数组会被换算。例如,现在可以对一个二维数组的行或列进行换算;

(2)sliding_window_view 为 numpy 数组提供了一个滑动窗口视图。numpy.lib.stride_tricks.sliding_window_view 在 numpy 数组上构造视图,提供对数组的滑动或移动窗口访问。这使得 running means 等某些算法可以简单实现。

>>> x = np.arange(6)
*>>>* ** x.shape
(6,)
*>>>* ** v = sliding_window_view(x, 3)
*>>>* ** v.shape
(4, 3)
*>>>* ** v
array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4],
[3, 4, 5]])

(3)一个面向用户(user-facing)的全新函数 numpy.broadcast_shapes。该函数可以从给定形状元组中通过 broadcasting 获得形状,其中 broadcasting 机制的功能是为了方便不同 shape 的 array 进行数学运算。

*>>>* np.broadcast_shapes((1, 2), (3, 1))
(3, 2)
*>>>* np.broadcast_shapes(2, (3, 1))
(3, 2)
*>>>* np.broadcast_shapes((6, 7), (5, 6, 1), (7,), (5, 1, 7))
(5, 6, 7)

弃用的功能

像 np.int 这类内置类型(builtin type)的别名已被弃用。在很长一段时间,np.int 是 int 的别名,但常常对新手造成困扰,这主要是历史原因造成的。

下表显示了已弃用别名的完整列表,其中第三列为备用 NumPy 名称。

此外,将 shape=None 传递给带有非可选参数 shape 的函数已被弃用,mode 和 searchside 的非精确匹配、numpy.dual 模块也都被弃用。

更多更新内容请参考:https://numpy.org/doc/1.20/release/1.20.0-notes.html#deprecations

2021年 2 月的第一周,机器之心将携手二十余位 AI 人耳熟能详的重磅嘉宾进行在线直播,通过圆桌探讨、趋势Talk,报告解读及案例分享等形式,为关注人工智能产业发展趋势的AI人解读技术演进趋势,共同探究产业发展脉络。连续七天,精彩不停。

本文分享自微信公众号 - 机器之心(almosthuman2014)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间: 2021-02-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

版权声明
本文为[机器之心]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/1791317

  1. Python notes: List
  2. Translation: practical Python Programming 02_ 03_ Formatting
  3. Python中的四种队列(queue)、堆(heap)
  4. Side effects of Python mutable types as default parameters of functions
  5. This is the best Python tutorial I've ever seen: ten minutes to get to know python
  6. 使用python编写量子线路打印的简单项目,并使用Sphinx自动化生成API文档
  7. Python happy enemy: crawler and anti crawler with a solution to give you New Year
  8. 使用python编写量子线路打印的简单项目,并使用Sphinx自动化生成API文档
  9. When writing python, you will encounter the following error: modulenotfounderror: no module named ' email.mime '; 'email' is not a package
  10. Python class call and private and public property method call
  11. Proprietary methods for Python classes
  12. Foundation of Python: number string and list
  13. Foundation of Python: number string and list
  14. Foundation of Python: number string and list
  15. 华为 Python网络自动化
  16. Python Cannot open E:\Python36\Scripts\pip-script.py
  17. Peeping into the future is not a dream, python data analysis is easy to achieve
  18. The practical skills summed up by Alibaba and Huawei Python engineers, only you haven't seen them yet?
  19. Sour! See the Python programmers on the tiktok get the pay slip...
  20. Foundation of Python: number string and list
  21. Python installation tutorial
  22. Python installation tutorial
  23. This article will familiarize you with the transformation process of Python - > Cafe - > om model
  24. Four kinds of queues and heaps in Python
  25. Using Python to write a simple project of quantum circuit printing, and using Sphinx to automatically generate API documents
  26. Using Python to write a simple project of quantum circuit printing, and using Sphinx to automatically generate API documents
  27. Huawei Python Network Automation
  28. Python Cannot open E:\Python36\Scripts\pip- script.py
  29. 找不到Python问题解决
  30. PHP和Python哪个更有市场前景?我学的是PHP
  31. Python problem resolution not found
  32. Which has more market prospects, PHP or Python? I studied PHP
  33. Foundation of Python: number string and list
  34. python 编码问题之终极解决
  35. The ultimate solution to the problem of Python coding
  36. 能取值亦能赋值的Python切片
  37. Python slice with value and value
  38. 能取值亦能赋值的Python切片
  39. Python slice with value and value
  40. python 异常处理
  41. Python exception handling
  42. python 异常处理
  43. Python exception handling
  44. Orca: 基于DolphinDB的分布式pandas接口
  45. Orca: distributed panda interface based on dolphin DB
  46. 5个无聊Python程序,用Python整蛊你的朋友们吧
  47. Five boring Python programs, trick your friends with Python
  48. python进阶训练营
  49. Python advanced training camp
  50. 【免费】0基础也能轻松学的Python训练营来啦,限时抢位中!
  51. [free] Python training camp, which is easy to learn, is here. It's time to grab a place!
  52. 手把手教你把Python应用到实际开发 不再空谈语法
  53. 全面系统Python3.8入门+进阶 (程序员必备第二语言)
  54. Hand in hand to teach you how to apply Python to practical development
  55. Comprehensive system introduction to Python 3.8 + Advanced
  56. Python语言的排序算法有哪些?Python学习班!
  57. Python language sorting algorithm what? Python classes!
  58. Java、JavaScript、C、C++、PHP、Python都是用来开发什么?
  59. 为什么学习Python?什么途径学习Python合适?
  60. What are Java, JavaScript, C, C + +, PHP and python used to develop?