como amostrar aleatoriamente na matriz 2D em numpy
Eu tenho uma matriz / matriz 2D como esta, como eu escolheria aleatoriamente o valor dessa matriz 2D, por exemplo, obter valor como[-62, 29.23]
. Eu olhei para onumpy.choice
mas é construído para uma matriz 1d.
A seguir, meu exemplo com 4 linhas e 8 colunas
Space_Position=[
[[-62,29.23],[-49.73,29.23],[-31.82,29.23],[-14.2,29.23],[3.51,29.23],[21.21,29.23],[39.04,29.23],[57.1,29.23]],
[[-62,11.28],[-49.73,11.28],[-31.82,11.28],[-14.2,11.28],[3.51,11.28],[21.21,11.28] ,[39.04,11.28],[57.1,11.8]],
[[-62,-5.54],[-49.73,-5.54],[-31.82,-5.54] ,[-14.2,-5.54],[3.51,-5.54],[21.21,-5.54],[39.04,-5.54],[57.1,-5.54]],
[[-62,-23.1],[-49.73,-23.1],[-31.82,-23.1],[-14.2,-23.1],[3.51,-23.1],[21.21,-23.1],[39.04,-23.1] ,[57.1,-23.1]]
]
Nas respostas, a seguinte solução foi dada:
random_index1 = np.random.randint(0, Space_Position.shape[0])
random_index2 = np.random.randint(0, Space_Position.shape[1])
Space_Position[random_index1][random_index2]
isso realmente funciona para me dar uma amostra, que tal mais de uma amostra como o quenp.choice()
faz?
Outra maneira que eu estou pensando é transformar a matriz em uma matriz em vez de matriz como,
Space_Position=[
[-62,29.23],[-49.73,29.23],[-31.82,29.23],[-14.2,29.23],[3.51,29.23],[21.21,29.23],[39.04,29.23],[57.1,29.23], ..... ]
e no último usonp.choice()
, no entanto, não consegui encontrar as maneiras de fazer a transformação,np.flatten()
torna a matriz como
Space_Position=[-62,29.23,-49.73,29.2, ....]