我有一个维度的NumPy数组data
:
(100,2048)
我想在开头添加11个,在每行末尾添加11个。
获取data.shape = (100, 11+2048+11)
我尝试了以下内容:
y = np.array([[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]])
z = np.append(y, data[0], axis=0)
通过从左侧添加零来适用于第一个data[0]
。
但是,即使只有一行,我也无法在右侧添加。
我正在寻找类似的东西:
z = np.append([y, data,y], axis=0)
例如:
z[0]= [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,
.......................,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]
.....表示2048值
答案 0 :(得分:2)
您可以使用np.pad
:
np.pad(z, ((0,0),(11,11)), 'constant', constant_values=1)
说明:((0,0), (11,11))
表示填充到每个轴边缘的值的数量。这里我们在0之前填充0值,在0之后填充0值(行)和每个列之前和之后的11。对于填充,我们使用常量值1。
答案 1 :(得分:1)
使用零创建一个新数组并将其填充到所需位置:
offset = 11
z = np.ones((data.shape[0], data.shape[1] + offset * 2), dtype=data.dtype)
z[:, offset:z.shape[1] - offset] = data