1
我試圖複製一個2D numpy的數組的邊界:複製邊界
>>> from numpy import *
>>> test = array(range(9)).reshape(3,3)
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
有沒有一種簡單的方法在任何方向上覆制一個邊界?
例如:
>>>> replicate(test, idx=0, axis=0, n=3)
array([[0, 1, 2],
[0, 1, 2],
[0, 1, 2],
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
編輯:
以下功能做了工作:
def replicate(a, xy, se, n):
rptIdx = numpy.ones(a.shape[0 if xy == 'X' else 1], dtype=int)
rptIdx[0 if se == 'start' else -1] = n + 1
return numpy.repeat(a, rptIdx, axis=0 if xy == 'X' else 1)
在[ 'X', 'Y']和SE XY在['start','end'中]
謝謝。我想我可以用'ones_like'和'repeat'來得到我想要的。 – Simon 2011-04-11 16:51:48