Thanks Pierre for noting that np.tile already
provides a chunk of this functionality:
>>> a = np.tile(5,(1,2,3))
>>> a
array([[[5, 5, 5],
[5, 5, 5]]])
>>> np.tile(1,a.shape)
array([[[1, 1, 1],
[1, 1, 1]]])
I had not realized a scalar first argument was possible.
Alan Isaac