在`np.ix_`中尾随下划线

时间:2014-02-20 15:58:23

标签: python numpy naming-conventions

为什么np.ix_的名称包含尾随下划线?

2 个答案:

答案 0 :(得分:8)

我无法给出完整的理由,但它是np.r_np.c_等的对称性。我可以猜测总体原因:

np.r_np.ix_等所有简短的numpy运算符都面向交互式使用。

因此,在交互式控制台中执行from numpy import *是常见的(尽管不可取)。

rcix等可能是变量名称。因此,它们可能以_为后缀,以防止用户在执行r后在交互式会话中定义名为ixfrom 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__定义的类的实例。 ogridmgrid也是可编入索引的对象。