Numpy: Assignment and Indexing as Matlab

后端 未结 3 1421
夕颜
夕颜 2021-01-13 13:36

Sometimes is useful to assign arrays with one index only. In Matlab this is straightforward:

M = zeros(4);
M(1:5:end) = 1
M =

   1   0   0   0
   0   1   0          


        
3条回答
  •  灰色年华
    2021-01-13 14:10

    You could do this using list indices:

    M = np.zeros((4,4))
    M[range(4), range(4)] = 1
    print M
    # [[ 1.  0.  0.  0.]
    #  [ 0.  1.  0.  0.]
    #  [ 0.  0.  1.  0.]
    #  [ 0.  0.  0.  1.]]
    

    In this case you could also use np.identity(4)

提交回复
热议问题