带下划线的NumPy类型:int_,float_等

pic*_*c11 10 python numpy naming-conventions

下划线后缀,int_,float_等有什么意义?

Ste*_*ski 12

来自TE Oliphant的Numpy指南第21页:

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

...

的数组类型bool_,int_,complex_, float_,object_,unicode_,和str_ 是增强型标量.它们与标准Python类型(没有尾随下划线)非常相似,并且从它们继承(除了bool_object_).只要需要,它们就可以代替标准的Python类型.每当需要数据类型时,作为参数,标准Python类型也会被识别.


hsl*_*hsl 5

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

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
Run Code Online (Sandbox Code Playgroud)