scipy - 如何从列表中随机提取数组

时间:2011-11-05 15:07:20

标签: python random scipy

我有这些:

    a=sc.array([0,1])
    b=sc.array([1,0])
    c=sc.array([0,-1])
    d=sc.array([-1,0])
    orientation_list=(sc.array([a,b,c,d])).tolist()
    #---------------------------------------------------------------------

    #i am trying sth like this
    tab=sc.random.random_integers(orientation_list)

我希望'tab'随机检索上述数组之一。例如'tab = [0,1]' 有办法吗?

1 个答案:

答案 0 :(得分:2)

>>> import random
>>> tab = random.choice([[0, 1], [1, 0], [0, -1], [-1, 0]])
>>> tab
[-1, 0]

您的代码创建了一堆NumPy数组,然后是这些NumPy数组的列表,然后将此列表本身转换为NumPy数组,最后将所有内容转换回列表。上面的代码会跳过所有这些(相当无意义的)转换,并使用Python的内置random模块而不是NumPy的numpy.random