С a
в качестве входного массива вы можете использовать array-assignment
, и это будет работать для универсального n-dim
ввода -
out = np.zeros(a.shape+(2,),dtype=a.dtype)
out[...,0] = a
Пример выполнения -
In [81]: a
Out[81]:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
In [82]: out = np.zeros(a.shape+(2,),dtype=a.dtype)
...: out[...,0] = a
In [83]: out
Out[83]:
array([[[1, 0],
[2, 0],
[3, 0]],
[[4, 0],
[5, 0],
[6, 0]],
[[7, 0],
[8, 0],
[9, 0]]])
Если вы играете с broadcasting
, вот вам компактный -
a[...,None]*[1,0]