Python的random模块被Numpy的random模块屏蔽
当我调用 random.sample(arr,length)
时,出现了一个错误,提示 random_sample() takes at most 1 positional argument (2 given)
。经过一些搜索,我发现我其实是在调用 Numpy 的随机采样函数,而我想用的是随机模块里的采样函数。我尝试用不同的名字导入 Numpy,但问题并没有解决。不过,我在程序的其他部分还是需要用到 Numpy。
有什么想法吗?谢谢!
4 个回答
5
这不应该发生。检查一下你的代码,看看有没有像 from numpy import *
这样的错误导入。
5
确保导入的内容要分开写:
>>> import numpy.random
>>> import random # python's random
14
听起来你有类似这样的代码:
import random
from numpy import *
而且 random
这个名字被 numpy 的导入给覆盖了。如果你想保留 import *
的写法,那你需要把 random
改个名字:
import random as rnd # or whatever name you like
from numpy import *
另外,更好的方法是把 numpy 当作一个模块来导入,而不是把它的所有内容直接放到你模块的命名空间里:
import random
import numpy as np # or leave as numpy, or whatever name you like