python - Assigning 2d array in vector of indices -


given 2d array k = np.zeros((m, n)) , list of indices in range 0, 1 .., m-1 of size n called places = np.random.random_integers(0, m-1, n) how assign 1 in each column of k in places[i] index running index. achieve in python compact style , without loops

examples:

n = 5, m =3 places= 0, 0, 1, 1, 2 

then:

k = [1, 1, 0, 0, 0      0, 0, 1, 1, 0      0, 0, 0, 0, 1] 

rslt = np.zeros((m, n)) i, v in enumerate(places): rslt[v,i]=1 

full code:

import numpy np n = 5 m=3 #places = np.random.random_integers(0, m-1, n) places= 0, 0, 1, 1, 2 rslt = np.zeros((m, n)) i, v in enumerate(places): rslt[v,i]=1 print(rslt)  out [34]: [[ 1.  1.  0.  0.  0.]  [ 0.  0.  1.  1.  0.]  [ 0.  0.  0.  0.  1.]] 

Comments

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -