scipy — как случайным образом извлечь массив из списка

#python #random #scipy

#python #Случайный #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:

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

Ваш код создает кучу массивов NumPy, затем список этих массивов NumPy, затем преобразует сам этот список в массив NumPy и, наконец, преобразует все обратно в список. Приведенный выше код пропускает все эти (довольно бессмысленные) преобразования и использует встроенный random модуль Python вместо NumPy numpy.random .