numpy 中有简单的 pad 吗?
Is there a simple pad in numpy?
是否有 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()
的方法
您可以使用 ndarray.resize()
:
>>> x = np.array([1,2,3])
>>> x.resize(5)
>>> x
array([1, 2, 3, 0, 0])
请注意,此函数的行为不同于 numpy.resize()
,后者使用数组本身的重复副本进行填充。 (一致性适用于无法记住所有内容的人。)
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])
是否有 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()
您可以使用 ndarray.resize()
:
>>> x = np.array([1,2,3])
>>> x.resize(5)
>>> x
array([1, 2, 3, 0, 0])
请注意,此函数的行为不同于 numpy.resize()
,后者使用数组本身的重复副本进行填充。 (一致性适用于无法记住所有内容的人。)
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])