[英]random.sample in Python 3 (jupyter notebook)
使用Canopy時,我可以做
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).
我怎樣才能解決這個問題?
請盡可能避免進口星星。 最終,通常不清楚您實際導入和隱藏了什么。
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'>
而
from scipy import *
import random
print(random)
打印:
<module 'random' from '/Users/ch/miniconda/envs/sci34/lib/python3.4/random.py'>
帶回家的消息:
最好from scipy import <subpackage>
import scipy as sp
或更好from scipy import <subpackage>
以避免陰影您的隨機函數。 感謝@ ev-br的發言。
如果您正在處理numpy的ndarray,則首選numpy.random中的方法, numpy.random
不是python的random模塊中的計數器部分。 您在這里看到的問題是python和numpy對序列的定義不同。 有關更多詳細信息,請參見此處的討論: https : //github.com/numpy/numpy/issues/2776
您想要的可能是np.random.choice
:
numpy.random.choice(a, size=None, replace=True, p=None)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.