2

NumPyを使用すると、行列 A には n 行 m 列があり、行列 A にガード リングを追加します。そのガード リングはすべてゼロです。

私は何をすべきか?リシェイプを使用しますか? しかし、要素は n+1 m+1 行列を作成するには十分ではありません。

またはなど?

前もって感謝します

つまり、行列 A を囲む 0 を常に含む余分なセルの輪です。マトリックス A と同じ。
4

3 に答える 3

5

これはあまり一般的ではありませんが、 Alexの答えの理解しやすいバージョンです:

>>> a = numpy.array(range(9)).reshape((3,3))
>>> a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> b = numpy.zeros(a.shape + numpy.array(2), a.dtype)
>>> b
array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])
>>> b[1:-1,1:-1] = a
>>> b
array([[0, 0, 0, 0, 0],
       [0, 0, 1, 2, 0],
       [0, 3, 4, 5, 0],
       [0, 6, 7, 8, 0],
       [0, 0, 0, 0, 0]])
于 2008-12-14T00:10:02.820 に答える