numpy有一个简单的垫吗?

时间:2015-09-02 14:00:02

标签: numpy pad

是否存在以这种方式填充数组的numpy函数?

import numpy as np

def pad(x, length):
    tmp = np.zeros((length,))
    tmp[:x.shape[0]] = x
    return tmp

x = np.array([1,2,3])
print pad(x, 5)

输出:

[ 1.  2.  3.  0.  0.]

我找不到使用numpy.pad()

的方法

2 个答案:

答案 0 :(得分:5)

您可以使用ndarray.resize()

>>> x = np.array([1,2,3])
>>> x.resize(5)
>>> x
array([1, 2, 3, 0, 0])

请注意,此函数的行为与numpy.resize()的行为不同,{{3}}填充了数组本身的重复副本。 (一致性适用于那些无法记住一切的人。)

答案 1 :(得分:3)

Sven Marnach建议使用ndarray.resize()可能是最简单的方法,但为了完整起见,这里是numpy.pad的完成方式:

In [13]: x
Out[13]: array([1, 2, 3])

In [14]: np.pad(x, [0, 5-x.size], mode='constant')
Out[14]: array([1, 2, 3, 0, 0])