Numpy: Assignment and Indexing as Matlab

后端 未结 3 1396
夕颜
夕颜 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:04

    Another way using unravel_index

    >>> M = zeros((4,4));
    >>> M[unravel_index(arange(0,4*4,5),(4,4))]= 1
    >>> M
    array([[ 1.,  0.,  0.,  0.],
           [ 0.,  1.,  0.,  0.],
           [ 0.,  0.,  1.,  0.],
           [ 0.,  0.,  0.,  1.]])
    

提交回复
热议问题