我知道必须有一种更清洁,更优雅的方式来做到这一点。我有[0,1]范围内的数字数组,想要检查哪些数字大于阈值。我记得有一些语法很好地做到这一点。在python中,我会使用类似lambda函数的东西。
p = sigmoid(dot(theta,X));
for i =1:size(p)
if(p(i)>=0.5)
p(i)=1
else
p(i)=0
end
end
答案 0 :(得分:10)
mtrw走在正确的轨道上,但它变得更短:
p = (p >= 0.5);
答案 1 :(得分:4)
您可以简单地说p = (p>=0.5)
。布尔运算符处理数组,并返回逻辑数组(由布尔值组成)。
答案 2 :(得分:2)
您可以立即对整个阵列进行操作:
p(p >= 0.5) = 1;
p(p < 0.5) = 0;
如果p
是一个Numpy数组,你可以在Numpy中做同样的事情:
>>> p[p >= 0.5] = 1
>>> p[p < 0.5] = 0
答案 3 :(得分:0)
只是为了变化。你也可以这样做:
p = floor(p + 0.5);
也可以推广到[0,1]范围内的其他阈值。