我有这些:
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]' 有办法吗?
答案 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
。