产生与中心的紧密联系。 numpy中的矩阵

时间:2016-11-05 02:18:45

标签: numpy

我认为这应该很容易,但我不确定这是一种有效的方法。

我希望在numpy中构建一个矩阵,它具有与矩阵中心接近的城市街区/曼哈顿,numpy,任何奇怪的大小。

如果大小为5,则输出为:

Command + /

最好的方法是什么?感谢

1 个答案:

答案 0 :(得分:3)

broadcasting -

简单高效
def closeness_manhattan(N):
    r = np.arange(N)
    a = np.minimum(r,r[::-1])
    return a[:,None] + a

样品运行 -

In [14]: closeness_manhattan(4)
Out[14]: 
array([[0, 1, 1, 0],
       [1, 2, 2, 1],
       [1, 2, 2, 1],
       [0, 1, 1, 0]])

In [15]: closeness_manhattan(5)
Out[15]: 
array([[0, 1, 2, 1, 0],
       [1, 2, 3, 2, 1],
       [2, 3, 4, 3, 2],
       [1, 2, 3, 2, 1],
       [0, 1, 2, 1, 0]])