Select two random strings from a numpy array

I have a numpy array like

[[ 5.80084178e-05 1.20779787e-02 -2.65970238e-02] [ -1.36810406e-02 6.85722519e-02 -2.60280724e-01] [ 4.21996519e-01 -1.43644036e-01 2.12904690e-01] [ 3.03098198e-02 1.50170659e-02 -1.09683402e-01] [ -1.50776089e-03 7.22369575e-03 -3.71181228e-02] [ -3.04448275e-01 -3.66987035e-01 1.44618682e-01] [ -1.46744916e-01 3.47112167e-01 3.09550267e-01] [ 1.16567762e-03 1.72858807e-02 -9.39297514e-02] [ 1.25896836e-04 1.61310167e-02 -6.00253128e-02] [ 1.65062798e-02 1.96933143e-02 -4.26540031e-02] [ -3.78020965e-03 7.51770012e-03 -3.67852984e-02]] 

And I want to select any two random strings from them so that the output is -

 [[ -1.36810406e-02 6.85722519e-02 -2.60280724e-01] [ 1.16567762e-03 1.72858807e-02 -9.39297514e-02]] 
+7
python arrays numpy random
source share
3 answers

I believe that you are just looking for:

 #Create a random array >>> a = np.random.random((5,3)) >>> a array([[ 0.26070423, 0.85704248, 0.82956827], [ 0.26840489, 0.75970263, 0.88660498], [ 0.5572771 , 0.29934986, 0.04507683], [ 0.78377012, 0.66445244, 0.08831775], [ 0.75533819, 0.05128844, 0.49477196]]) #Select random rows based on the rows in your array #The 2 value can be changed to select any number of rows >>> b = np.random.randint(0,a.shape[0],2) >>> b array([1, 2]) #Slice array a >>> a[b] array([[ 0.26840489, 0.75970263, 0.88660498], [ 0.5572771 , 0.29934986, 0.04507683]]) 

Or simply:

 a[np.random.randint(0,a.shape[0],2)] 
+7
source share

Do you mean array? It looks like a list to me.

to try:

 import random out_list = random.sample(your_numpy_list,2) 

This will give you a list containing two different members of your list (see documentation for random )

+2
source share

Say your array is:

 import numpy as np a=np.random.random((11,3)) 

Get two random strings:

 a[randint(0,11,size=2)] 

To get two random columns:

 [a[:,x] for x in randint(0,3,size=2)] 

You can also watch random

+1
source share

All Articles