तो, मान लें कि मेरे पास 100 तत्वों के साथ 100,000 फ्लोट सरणी हैं। मुझे मूल्यों की उच्चतम एक्स संख्या की आवश्यकता है, लेकिन केवल तभी जब वे वाई से अधिक हों। किसी भी तत्व से मेल नहीं खाते को 0 पर सेट किया जाना चाहिए। पायथन में ऐसा करने का सबसे तेज़ तरीका क्या होगा? आदेश बनाए रखा जाना चाहिए। ,सरणी में कम मूल्यों को शून्य करने का सबसे तेज़ तरीका?
topX = sorted([x for x in array if x > lowValY], reverse=True)[highCountX-1]
print [x if x >= topX else 0 for x in array]
टुकड़े में: तत्वों से अधिकांश पहले से 0.
नमूना चर की तैयारी में हैं:
array = [.06, .25, 0, .15, .5, 0, 0, 0.04, 0, 0]
highCountX = 3
lowValY = .1
अपेक्षित परिणाम:
array = [0, .25, 0, .15, .5, 0, 0, 0, 0, 0]
क्या HightCountX के लिए है? –
हाईकाउंटएक्स अधिकतम संख्या में शून्य-शून्य तत्व है जो मैं सरणी – David
में मौजूद होना चाहता हूं यदि यह 2 अपेक्षित परिणाम होगा: [0, 0, 0, .15, .5, 0, 0, 0, 0, 0] - हाईकाउंटएक्स परिणामस्वरूप गैर-शून्य तत्वों की संख्या को सीमित करता है। – Abgan