Python 3中的random.sample(jupyter笔记本)

Python 3中的random.sample(jupyter笔记本),python,scipy,jupyter-notebook,Python,Scipy,Jupyter Notebook,当使用天篷时,我能做什么 from scipy import * import pylab as py import random aa = random.sample(arange(1,4,0.5),1) 而在Jupyter笔记本电脑中,其投诉如下: --------------------------------------------------------------------------- TypeError T

当使用天篷时,我能做什么

from scipy import *
import pylab as py
import random

aa = random.sample(arange(1,4,0.5),1)
而在Jupyter笔记本电脑中,其投诉如下:

  ---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-59-e33979a68ee1> in <module>()
----> 1 cc = random.sample(arange(1,4,0.5), 1)

/u/rscratch/bm485/anaconda3/lib/python3.5/random.py in sample(self, population, k)
309             population = tuple(population)
310         if not isinstance(population, _Sequence):
--> 311             raise TypeError("Population must be a sequence or set.  For dicts, use list(d).")
312         randbelow = self._randbelow
313         n = len(population)

TypeError: Population must be a sequence or set.  For dicts, use list(d).
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
---->1 cc=随机样本(arange(1,4,0.5),1)
/样本中的u/rscratch/bm485/anaconda3/lib/python3.5/random.py(自我、总体、k)
309总体=元组(总体)
310如果不存在(总体,按顺序):
-->311 raise TypeError(“填充必须是序列或集合。对于DICT,使用列表(d)。”
312 Randbellow=自我。\u Randbellow
313 n=len(总体)
TypeError:填充必须是序列或集合。对于dicts,使用列表(d)。

如何解决此问题?

请尽可能避免星型导入。通常不清楚您最终实际导入和隐藏了什么

import random
from scipy import *
print(random)
给出:

<module 'numpy.random' from '/Users/ch/miniconda/envs/sci34/lib/python3.4/site-packages/numpy/random/__init__.py'>
印刷品:

<module 'random' from '/Users/ch/miniconda/envs/sci34/lib/python3.4/random.py'>

请列出您所有的进口商品。与numpy import*相比,我更喜欢将numpy导入为np而不是numpy import*——后者的导入可能会影响其他导入。我编辑了这个问题,并将导入@cel
np.random.choice(np.arange(1,4,0.5),1)
有效,而
random.choice(np.arange(1,4,0.5))也有效,从
scipy导入*
implicity将
numpy.random
拉入您的姓名空间。甚至没有理由执行
import scipy as sp
。从scipy导入子包或从scipy.subpackage导入某些东西。删除的编辑:错误的建议,显然说明将scipy导入为sp的文档已被删除,建议删除,因为子包不会自动加载scipy,意思是
sp.integrate
将引发AttributeError。@cel,虽然这个答案很有道理,但这是否会导致
类型错误?问题中的代码在Windows7上的Python2.7中运行良好。@o_o,好的观点,我认为根本问题实际上是@cel,这看起来是正确的。我认为显式转换为列表可以解决这个问题,但我没有安装Python3.X来测试它。
<module 'random' from '/Users/ch/miniconda/envs/sci34/lib/python3.4/random.py'>
numpy.random.choice(a, size=None, replace=True, p=None)