2

このように配列をパディングする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()

4

2 に答える 2

5

使用できますndarray.resize()

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

この関数はnumpy.resize()、配列自体のコピーを繰り返してパディングする とは異なる動作をすることに注意してください。(一貫性は、すべてを覚えていない人向けです。)

于 2015-09-02T14:03:41.917 に答える
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])
于 2015-09-02T14:20:46.377 に答える