मैं केवल एक अभिव्यक्ति का उपयोग करके थ्रेसहोल्ड के आधार पर numpy N-d सरणी को बिनराइज़ करने का एक तरीका ढूंढ रहा हूं। एक अब हैकेवल एक अभिव्यक्ति का उपयोग करके अजीब मैट्रिक्स बिनराइजेशन
np.random.seed(0)
np.set_printoptions(precision=3)
a = np.random.rand(4, 4)
threshold, upper, lower = 0.5, 1, 0
:
array([[ 0.02 , 0.833, 0.778, 0.87 ],
[ 0.979, 0.799, 0.461, 0.781],
[ 0.118, 0.64 , 0.143, 0.945],
[ 0.522, 0.415, 0.265, 0.774]])
अब मैं इन 2 भाव आग कर सकते हैं:
a[a>threshold] = upper
a[a<=threshold] = lower
और प्राप्त जो मैं चाहता: तो मैं इस तरह कुछ है
array([[ 0., 1., 1., 1.],
[ 1., 1., 0., 1.],
[ 0., 1., 0., 1.],
[ 1., 0., 0., 1.]])
लेकिन क्या ऐसा करने का कोई तरीका है ई अभिव्यक्ति?