बिना लूप के Pokémon totals और averages
720 Pokémon की एक सूची names नाम से आपके सेशन में लोड है. हर Pokémon के संबंधित आँकड़े (statistics) एक NumPy array stats के रूप में लोड हैं. stats की हर row names में एक Pokémon से मेल खाती है और हर column एक व्यक्तिगत Pokémon stat दर्शाता है (HP, Attack, Defense, Special Attack, Special Defense, और Speed क्रमशः).
आप हर Pokémon का कुल stat मान (अर्थात् stats की हर row का sum) और हर Pokémon का औसत stat मान (अर्थात् stats की हर row का mean) इकट्ठा करना चाहते हैं ताकि आप सबसे मज़बूत Pokémon ढूँढ़ सकें.
इन मानों को इकट्ठा करने के लिए नीचे दिया गया for लूप लिखा गया था:
poke_list = []
for pokemon,row in zip(names, stats):
total_stats = np.sum(row)
avg_stats = np.mean(row)
poke_list.append((pokemon, total_stats, avg_stats))
यह अभ्यास पाठ्यक्रम का हिस्सा है
Efficient Python Code लिखना
अभ्यास निर्देश
- ऊपर दिए गए for लूप को NumPy से बदलें:
.sum()मेथड और सही axis निर्दिष्ट करके total stats array (total_stats_np) बनाएँ..mean()मेथड और सही axis निर्दिष्ट करके average stats array (avg_stats_np) बनाएँ.- अंतिम आउटपुट सूची (
poke_list_np) बनाएँ, जिसमेंnamesसूची,total_stats_nparray, औरavg_stats_nparray को मिलाएँ.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create a total stats array
total_stats_np = ____.____(axis=____)
# Create an average stats array
avg_stats_np = ____
# Combine names, total_stats_np, and avg_stats_np into a list
poke_list_np = [*____(names, total_stats_np, avg_stats_np)]
print(poke_list_np == poke_list, '\n')
print(poke_list_np[:3])
print(poke_list[:3], '\n')
top_3 = sorted(poke_list_np, key=lambda x: x[1], reverse=True)[:3]
print('3 strongest Pokémon:\n{}'.format(top_3))