以下是nparray示例:
array([[ 0.70582116, 0.29417881],
[ 0.65219176, 0.34780821],
[ 0.82653958, 0.17346044],
...,
[ 0.76903266, 0.23096734],
[ 0.65070963, 0.3492904 ],
[ 0.63485813, 0.36514184]], dtype=float32)
我打算在第一列上屏蔽它,如果它大于0.7,则应用1 else 0(对于第二列,反之亦然)。所以最后nparray看起来应该是这样的:
array([[ 1, 0],
[ 0, 1],
[ 1, 0],
...,
[ 1, 0],
[ 0, 1 ],
[ 0, 1]], dtype=float32)
我怎么能通过Pythonic方式的numpy来做到这一点?谢谢!
答案 0 :(得分:1)
IIUC,稍微广播的逻辑比较并转换为int
:
(x > 0.7).astype(int)
array([[1, 0],
[0, 0],
[1, 0],
[1, 0],
[0, 0],
[0, 0]])
答案 1 :(得分:1)
这很简单:
arr > 0.7
这会在np.bool
中产生结果。要转换为np.float32
:
(arr > 0.7).astype(dtype=np.float32)