为什么np.ix_
的名称包含尾随下划线?
答案 0 :(得分:8)
我无法给出完整的理由,但它是np.r_
,np.c_
等的对称性。我可以猜测总体原因:
np.r_
,np.ix_
等所有简短的numpy运算符都面向交互式使用。
因此,在交互式控制台中执行from numpy import *
是常见的(尽管不可取)。
r
,c
,ix
等可能是变量名称。因此,它们可能以_
为后缀,以防止用户在执行r
后在交互式会话中定义名为ix
或from numpy import *
的变量时遭到破坏。
答案 1 :(得分:1)
ix_
中找到 numpy.lib.index_tricks
该模块归功于:
# Written by Konrad Hinsen <hinsen@cnrs-orleans.fr>
# last revision: 1999-7-23
#
# Cosmetic changes by T. Oliphant 2001
它是多年前写的,并作为遗留组件合并到当前numpy
中。这些名称是多年前由一位程序员选择的,并且从未改变为符合Python社区标准。
来自.ix_
doc:
使用
ix_
可以快速构建将索引的索引数组 十字架产品。
我的猜测:'我'代表'索引','x'代表'交叉','_'以避免与(可能的)常见索引变量名称混淆。
来自同一模块的类似命名对象是r_
,c_
和s_
。从技术上讲,它们不是函数,因为它们不可调用(不要使用()
)。但它们是可索引的(取[]
)。它们实际上是具有__getitem__
定义的类的实例。 ogrid
和mgrid
也是可编入索引的对象。