在Python数组中使用布尔掩码

时间:2017-05-26 01:16:59

标签: python numpy

我试图理解如何在Python中的数组上使用布尔掩码。在下面的示例中,Python函数成功触及color_select数组的所有元素。它是如何做到的,因为代码看起来只是索引color_select的第0个或第1个元素?

var arrayOfObjects = [{
    key_a: "value1",
    key_b: "value2"
  },
  {
    key_c: "value12",
    key_d: "value23"
  }
];

var objToCompare = {
  key_a: "value1",
  key_b: "value2"
};

// credits https://stackoverflow.com/a/6713782/2308005
function objectEquals(x, y) {
  if (x === y) return true;
  if (!(x instanceof Object) || !(y instanceof Object)) return false;
  if (x.constructor !== y.constructor) return false;
  for (var p in x) {
    if (!x.hasOwnProperty(p)) continue;
    if (!y.hasOwnProperty(p)) return false;
    if (x[p] === y[p]) continue;
    if (typeof(x[p]) !== "object") return false;
    if (!Object.equals(x[p], y[p])) return false;
  }
  for (p in y) {
    if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) return false;
  }
  return true;
}


var result = arrayOfObjects.filter(function(item) {
  return !objectEquals(item, objToCompare);
});

console.log(result);

1 个答案:

答案 0 :(得分:1)

在python中,responseHandler : SignUpTaskResponseHandler字符指定要在可迭代内索引的范围。如果没有给出参数(例如:),则python将其读作“对整个列表进行操作”。

在您的代码中,似乎list[:]是一个三维数组。例如,img表示“在Z的第一个级别中获取所有X和Y,并检查它是否大于集合img[:,:,0] > thresh[0]的第一个元素”。如果thresh只有3个“z-layers”,则此代码会触及所有3个图层的所有元素。