fill numpy array with sequence of numbers

Viewed 330

I have a numpy array with the shape (6, 3, 4) that I'd like to fill with an ascending sequence of numbers so that the resulting array is this:

array([[[0, 0, 0, 0],
    [0, 0, 0, 0],
    [0, 0, 0, 0]],

   [[1, 0, 0, 0],
    [0, 0, 0, 0],
    [0, 0, 0, 0]],

   [[2, 0, 0, 0],
    [0, 0, 0, 0],
    [0, 0, 0, 0]],

   [[3, 0, 0, 0],
    [0, 0, 0, 0],
    [0, 0, 0, 0]],

   [[4, 0, 0, 0],
    [0, 0, 0, 0],
    [0, 0, 0, 0]],

   [[5, 0, 0, 0],
    [0, 0, 0, 0],
    [0, 0, 0, 0]]], dtype=uint8)

I do not want to use a loop, if possible.

I've tried the following with no luck:

import numpy as np

new_row = np.zeros([6, 3, 4], dtype=np.uint8)
new_row[:,0:1,0:1] = range(6)

which results in ValueError: could not broadcast input array from shape (6) into shape (6,1,1)

Any help appreciated

0 Answers
Related