计算多维numpy数组的不同统计量

时间:2016-08-16 23:28:12

标签: python numpy

有一个nd.array被称为label1,在打印出来时,它有

[[0 0 0 ..., 0 0 0]
 [0 0 0 ..., 0 88 0]
 [0 0 0 ..., 0 0 0]
 ...,
 [0 0 1 ..., 0 0 0]
 [0 0 0 ..., 0 2 0]
 [0 0 0 ..., 0 0 0]]

它的形状是(729,816)。有没有办法知道这个数组中有多少个唯一值?运行print(np.where(label1==label1.max()))时,结果看起来像(array([ 0, 0, 0, ..., 234, 234, 234]), array([450, 451, 452, ..., 433, 434, 435])),这是否意味着它有两个数组(或两行)具有这些最大值?

1 个答案:

答案 0 :(得分:0)

  1. 要获取数组中已排序的唯一值,请执行numpy.unique(label1)
  2. 在二维数组上调用时,numpy.where返回两个数组,这些数组是所有匹配条目的行和列坐标。因此,如果numpy.where返回(array([0]), array([1])),则表示在第0行第1列找到了一个匹配。
  3. 编辑:如果要从numpy.where提取并打印行和列坐标,可以这样做:

    rows, cols = np.where(label1==label1.max())
    for row, col in zip(rows, cols):
      print row, col