如何识别numpy数组中的最小值,不包括对角线零?

时间:2013-07-01 20:33:18

标签: python arrays numpy

    >>> x
    array([[ 0,  2,  3,  4],
           [ 6,  0,  8,  9],
           [ 1,  2,  0, -9]
           [ -9, 4,  3,  0])

我希望能够将-9识别为min(x),而不是0。

由于

2 个答案:

答案 0 :(得分:4)

  1. 将对角线设置为其dtype的最大值。对于浮点类型,那将是np.inf,但对于整数,你必须更努力地工作。

    x[np.diag_indices_from(x)] = np.iinfo(x.dtype).max
    
  2. 选择min

  3. 将对角线设置为零。

答案 1 :(得分:0)

因为-9 < 0 x.min()应该没有任何诡计。如果你不会消极,你只需要担心。