gpt4 book ai didi

python - 我如何知道我是否正在调用 numpy.array() 还是使用内置数组函数?

转载 作者:行者123 更新时间:2023-11-30 22:17:45 27 4
gpt4 key购买 nike

例如,如果我按如下方式导入:

from numpy import empty, full, zeros, matrix, arange, asarray, array

然后我可能会生成一些列表:

stuff = []

for i in range(N):
stuff.append(things)

然后,我意识到我必须做一些数学!所以我输入:

math_stuff = array(stuff)

由于我不必输入 numpy.array 或 np.array,根据我声明导入的方式,我如何知道我的 IDE 更喜欢 numpy 版本而不是内置版本?这是自动的吗?

我检查了 numpy.array() 和 python 内置 array() 的文档,看起来它们都接受相同的“类似列表”参数。

最佳答案

正如评论者所说,只需查看最新的导入语句,您就可以轻松判断正在使用哪个。但是,如果您担心/困惑,您还可以使用 Python 方便的内置反射功能直接检查函数或类源自的模块。

例如以下Python语句:

print(array.__module__)
如果 array 是从 numpy 包导入的,

将打印字符串 'numpy.core.multiarray',或者打印字符串 'array' 如果它是从 array 包导入的。

如果x.__module__失败,请通过dir(x)探索替代方案

@ShadowRanger 提出了一些优点,即某些 Python 对象没有 __module__ 属性。特别是,如果您仅运行 import array,则 array 是一个模块,并且 print(array.__module__) 调用将会失败。在这种情况下,您始终可以通过 dir() 函数发现哪些反射信息实际上可用。

dir() 无疑是我最喜欢的 Python 功能。对于任何 Python 对象 xdir(x) 都会打印出 x 的完整属性列表。例如,假设您刚刚运行 import array,执行 dir(array) 将打印出:

['ArrayType',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'_array_reconstructor',
'array',
'typecodes']

这表明,即使数组模块缺少 __module__,但也有其他可用的反射信息,例如 __name____file__

关于python - 我如何知道我是否正在调用 numpy.array() 还是使用内置数组函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49546472/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com