【问题标题】:Why was the name "arange" chosen for the numpy function?为什么为 numpy 函数选择名称“arange”?
【发布时间】:2019-08-01 19:45:18
【问题描述】:

numpy 函数arange 如此命名是否有特定原因?

人们habitually 打错了arrange,假设它拼写为英文单词,所以这个选择似乎有点疏忽,因为numpy 没有使用其他拼写不明确的选项(range 等)。

它被选为a射线和范围的组合吗?

【问题讨论】:

  • Travis 在他 2006 年的著作 web.mit.edu/dvp/Public/numpybook.pdf 中提到了这一点,引用:“函数类似于 Python 的内置 range() 函数,但它返回一个 ndarray 对象”
  • 在使用 * 导入 numpy 时遮蔽 range 会很麻烦。 summin 被遮蔽,但问题较少。例如,for i in range(10): 优于 for i in arange(10):

标签: python numpy naming-conventions naming pep


【解决方案1】:

NumPy 派生自一个名为 Numeric 的旧 Python 库(实际上是 the first array object built for python)。 arange 函数可以追溯到这个库,其词源在其手册中有详细说明:

数组范围()

arrayrange() 函数类似于 Python 中的 range() 函数,不同之处在于它返回的是数组而不是列表。

...

arange()arrayrange() 的简写。

  • 数值手册
    2001 (p. 18-19), 1999 (p.23)

很明显,array(range(25))(第 16 页)还有另一个示例,它在功能上与 arrayrange() 相同。

【讨论】:

  • linspace 用于线性空间(相对于geomspacelogspace)?
【解决方案2】:

它是明确的modelled on Python range 函数。前缀a 的先例是在Python 1 中已经有一个range 的变体,称为xrange

【讨论】:

  • 虽然如果arange 先于xrange 我不会感到惊讶。知道 xrange 何时添加到 Py2 中吗?
  • @hpaulj,看python.org/doc/versions,好像是python2.0中加入的,2000年10月。
  • xrange 在 Python 1.5.2 (1998) 中。也许更早,但那是在我之前。
  • xrange 至少早在 1.4(1996 年 10 月 25 日)docs.python.org/release/1.4/lib/node26.html987654323@
猜你喜欢
  • 2018-10-14
  • 1970-01-01
  • 2013-10-07
  • 2011-12-26
  • 2012-10-17
  • 2019-05-20
  • 1970-01-01
  • 2017-05-29
  • 2015-01-12
相关资源
最近更新 更多