为什么numpy函数的名字选择为"arange"?

23
有没有特定的原因,使得numpy函数arange被这么命名?
人们习惯性地将单词拼错成arrange,认为它的拼写方式与英语单词相同,因此这个选择似乎是一种疏忽,因为numpy还有其他不太含糊的单词可以使用(例如range等)。
它是作为array和range两个单词的混合词而被选中的吗?

3
Travis在他2006年的书http://web.mit.edu/dvp/Public/numpybook.pdf中提到了这一点,引用如下:“与Python内置的range()函数类似的函数,但返回一个ndarray对象。” - hpaulj
2
当使用*导入numpy时,遮蔽range会很麻烦。 summin被遮蔽,但问题较少。例如,for i in range(10):for i in arange(10):更可取。 - hpaulj
2个回答

26
NumPy源自一个旧的Python库Numeric(事实上,这是为Python构建的第一个数组对象)。函数arange可以追溯到这个库,其词源在其手册中有详细说明:

arrayrange()

函数arrayrange()类似于Python中的range()函数,只不过它返回的是一个数组而不是列表。

...

arange()arrayrange()的缩写。

  • Numeric手册
    2001 (p. 18-19), 1999 (p.23)
值得注意的是,在另一个例子中,array(range(25))(p.16)与arrayrange()的功能相同。

3
linspace是用于线性等分(与geomspacelogspace不同)的函数吗? - schemacs

2
它明确地模仿了Python的range函数。在Python 1中,将前缀a添加到变量名中是因为已经有一个叫做xrange的变体。
最初的回答:该函数是基于Python的range函数进行模拟的。在Python 1中,已经存在一个名为xrange的变体,因此在变量名前加a作为前缀。

1
虽然如果 arangexrange 之前出现我也不会感到惊讶。你知道 xrange 是在 Py2 的什么时候添加的吗? - hpaulj
@hpaulj,看 https://www.python.org/doc/versions/,似乎是在2000年10月加入了Python2.0。 - user2699
xrange 函数最早出现在 Python 1.5.2 版本(1998 年)。可能更早,但那时我还没有接触编程。 - BoarGules
1
xrange 自 Python 1.4 版本以来就存在了(1996年10月25日)。具体资料请见 https://docs.python.org/release/1.4/lib/node26.html。 - iacob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接