【问题标题】:NumPy types with underscore: `int_`, `float_`, etc带下划线的 NumPy 类型:`int_`、`float_` 等
【发布时间】:2011-09-06 11:53:30
【问题描述】:

int_float_等中的下划线后缀有什么意义?

【问题讨论】:

  • 我想是这样他们就不会与内置函数发生冲突。这与您不会创建自己的名为 list 的类的原因相同。

标签: python numpy naming-conventions


【解决方案1】:

来自Guide to Numpy 的第 21 页,作者:TE Oliphant:

数据类型的名称 与标准 Python 对象冲突 名称后跟一个尾随 下划线,''。这些数据类型是 如此命名是因为它们使用相同的 基础精度作为 对应的 Python 数据类型。

。 . .

数组类型bool_int_complex_float_object_unicode_str_ 是增强标量。他们很 类似于标准的 Python 类型 (没有尾随下划线)和 从他们那里继承(bool_object_)。它们可以用来代替 标准的 Python 类型 想要的。每当数据类型是 需要,作为参数,标准 Python 类型也被识别。

【讨论】:

  • Oliphant 的书看起来很棒。感谢您发布它。
【解决方案2】:

如果您不确定您的变量是标量、列表还是数组,使用带有“_”的变量将确保您的代码无论如何都可以正常工作(如果这是您想要的行为)。请参阅下面的示例代码。

import numpy as np
scalar = 3
L1 = [3]
L2 = [1, 2, 3]

np.float(scalar)  # okay
np.float(L1)  # breaks (TypeError)
np.float(L2)  # breaks (TypeError)

np.float_(scalar)  # okay
np.float_(L1)  # okay
np.float_(L2)  # okay

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 2013-03-31
    • 2015-12-03
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    相关资源
    最近更新 更多