Python 如何有效地为n维数组插入元素

Python 如何有效地为n维数组插入元素,python,arrays,numpy,insert,concatenation,Python,Arrays,Numpy,Insert,Concatenation,有一个简单的例子 我有一个二维数组 a=np.arange(4).reshape(2,2)+1 array([[1, 2], [3, 4]]) 我想在数组的开头和结尾插入0(或任何其他值),然后它变成 array([[ 0., 0., 0., 0.], [ 0., 1., 2., 0.], [ 0., 3., 4., 0.], [ 0., 0., 0., 0.]]) 我正在尝试np.insert或np.conc

有一个简单的例子

我有一个二维数组

a=np.arange(4).reshape(2,2)+1

array([[1, 2],
       [3, 4]])
我想在数组的开头和结尾插入0(或任何其他值),然后它变成

array([[ 0.,  0.,  0.,  0.],
       [ 0.,  1.,  2.,  0.],
       [ 0.,  3.,  4.,  0.],
       [ 0.,  0.,  0.,  0.]])

我正在尝试np.insert或np.concatenate,但在>2维时失败。处理此类问题的最快方法是什么?

使用
numpy.pad

>>> np.pad(a, 1, 'constant')
array([[0, 0, 0, 0],
       [0, 1, 2, 0],
       [0, 3, 4, 0],
       [0, 0, 0, 0]])

最快的方法是初始化零数组并赋值。你试过了吗?这是我处理这个问题的第一种方法,但是如果我的矩阵很大,我不确定它是最快的,不是吗?如果我只想填充一个轴呢?@kinderchan
np.pad(a,[(0,0),(1,1)],mode='constant')
np.pad(a,[(1,1),(0,0)],mode='constant')
取决于你要填充的轴。