เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

คำนวณค่ารวมและค่าเฉลี่ยของโปเกมอนโดยไม่ใช้ลูป

ลิสต์โปเกมอน 720 ตัวถูกโหลดไว้ในเซสชันของคุณในชื่อ names และสถิติของโปเกมอนแต่ละตัวถูกโหลดเป็น NumPy array ชื่อ stats แต่ละแถวใน stats สอดคล้องกับโปเกมอนในลิสต์ names และแต่ละคอลัมน์แทนค่าสถิติรายบุคคล (ได้แก่ HP, Attack, Defense, Special Attack, Special Defense และ Speed ตามลำดับ)

เป้าหมายคือต้องการรวบรวมค่าสถิติรวม (ผลรวมของแต่ละแถวใน stats) และค่าสถิติเฉลี่ย (ค่าเฉลี่ยของแต่ละแถวใน stats) ของโปเกมอนแต่ละตัว เพื่อค้นหาโปเกมอนที่แข็งแกร่งที่สุด

for loop ด้านล่างถูกเขียนขึ้นเพื่อรวบรวมค่าเหล่านี้:

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))

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเขียน Python Code ที่มีประสิทธิภาพ

ดูคอร์ส

คำแนะนำการฝึกหัด

  • แทนที่ for loop ด้านบนโดยใช้ NumPy:
    • สร้างอาร์เรย์ค่าสถิติรวม (total_stats_np) โดยใช้เมธอด .sum() พร้อมระบุ axis ให้ถูกต้อง
    • สร้างอาร์เรย์ค่าสถิติเฉลี่ย (avg_stats_np) โดยใช้เมธอด .mean() พร้อมระบุ axis ให้ถูกต้อง
    • สร้างลิสต์ผลลัพธ์สุดท้าย (poke_list_np) โดยรวม names, อาร์เรย์ total_stats_np และอาร์เรย์ avg_stats_np เข้าด้วยกัน

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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))
แก้ไขและรันโค้ด