带有零的numpy pad创建2d数组而不是所需的1d

时间:2019-06-02 09:15:35

标签: python arrays numpy padding

我试图用零填充一维numpy数组。

这是我的代码

v = np.random.rand(100, 1)
pad_size = 100
v = np.pad(v, (pad_size, 0), 'constant')
  

结果是200x101数组,其最后一列是[0,0,0,... <v>],(前100个零),   并且所有第1 100列均为零。

如何获取所需的数组

  

[0,0,0,.. 0,<v>]

大小(len(v)+ pad_size,1)?

2 个答案:

答案 0 :(得分:2)

pad输出为2D,因为pad 输入为2D。您出于某些原因用rand制作了2D数组:

v = np.random.rand(100, 1)

如果您想要一维数组,则应该制作一维数组:

v = np.random.rand(100)

如果要使用1列2D数组,则使用的是错误的pad。第二个参数应为((100, 0), (0, 0)):在第一个轴上填充100个元素,在第一个轴上填充0个元素,在第二个轴上填充0个元素,在第二个轴上填充0个元素:

v = np.random.rand(100, 1)
pad_size = 100
v = np.pad(v, ((pad_size, 0), (0, 0)), 'constant')

对于1行2D数组,您需要同时调整randpad的调用:

v = np.random.rand(1, 100)
pad_size = 100
v = np.pad(v, ((0, 0), (pad_size, 0)), 'constant')

答案 1 :(得分:0)

  1. np.hstack((np.zeros((200,100)),您的v))

  2. np.concatenate((np.zeros((200,100)),您的v),轴= 1)

    这可能是您的愿望:

enter image description here