具有零的Numpy Pad创建2d数组,而不是所需的1d [英] numpy pad with zeros creates 2d array instead of desired 1d

查看:84
本文介绍了具有零的Numpy Pad创建2d数组,而不是所需的1d的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试用零填充一维numpy数组.

I am trying to pad a 1d numpy array with zeros.

这是我的代码

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列均为零.

result is 200x101 array, whose last column is [0,0,0,... <v>], (leading 100 zeros), and all 1st 100 columns are zeros.

如何获取所需的数组

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

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

of size (len(v)+pad_size, 1)?

推荐答案

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

The pad output is 2D because the pad input was 2D. You made a 2D array with rand for some reason:

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

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

If you wanted a 1D array, you should have made a 1D array:

v = np.random.rand(100)

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

If you wanted a 1-column 2D array, then you're using pad incorrectly. The second argument should be ((100, 0), (0, 0)): padding 100 elements before in the first axis, 0 elements after in the first axis, 0 elements before in the second axis, 0 elements after in the second axis:

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

对于1行2D数组,您需要同时调整rand调用和pad调用:

For a 1-row 2D array, you would need to adjust both the rand call and the pad call:

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

这篇关于具有零的Numpy Pad创建2d数组,而不是所需的1d的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆