Posts: 1
Threads: 1
Joined: May 2022
# ------------------------------------------------------------
# Import libraries
# ------------------------------------------------------------
# =====> Write your code here
mean = 0
index = 0
# ------------------------------------------------------------
# Constants
# ------------------------------------------------------------
# =====> Write your code here
Pass = (mean >= 50)
Fail = (mean <= 49)
# ------------------------------------------------------------
# Global variables
# ------------------------------------------------------------
myClass = [["Lang", "Carla", 49, 71, 95, 50],
["Bucklund", "Pia", 86, 78, 83, 64],
["Lang", "Jason", 95, 57, 92, 62],
["Dimitrousis", "Hector", 93, 45, 89, 96],
["Owens", "Sunna", 45, 50, 46, 54],
["Goldin", "Sandra", 25, 60, 45, 55],
["Giles", "Seth", 67, 73, 93, 64],
["Gurillo", "Melanie", 88, 88, 62, 79],
["Rykiel", "Kari", 67, 92, 54, 86],
["Shailes", "Dennis", 56, 70, 84, 62]]
# =====> Write your code here
for mean in myClass:
for total in myClass[index:]
total = myClass[2] + myClass[3] + myClass[4] + myClass[5]
index += 1
print (total) This was my attempt at doing it by indexing the first row and moving down by adding one each time to the 2d data structure place. I want to be able to calculate the mean of the last four numbers in the data structure. The numbers would be [2][3][4][5] but I do not know how to calculate it each time for each row on the list. I tried using for mean in myClass[index]: but it would give no extra help. Any ideas
Posts: 4,802
Threads: 77
Joined: Jan 2018
myClass is a list of students, so your loop could look like
for myStudent in myClass:
# do something with myStudent Each student's data is a 1D data structure (a Python list here).
TheOddCircle likes this post
Posts: 6,816
Threads: 20
Joined: Feb 2020
May-26-2022, 11:43 PM
(This post was last modified: May-26-2022, 11:43 PM by deanhystad.)
You might want to "unpack" the student like this:
last_name, first_name, *grades = mystudent
Posts: 300
Threads: 72
Joined: Apr 2019
May-27-2022, 09:09 AM
(This post was last modified: May-27-2022, 09:09 AM by paul18fr.)
I would have done something like:
import numpy as np
myClass = [["Lang", "Carla", 49, 71, 95, 50],
["Bucklund", "Pia", 86, 78, 83, 64],
["Lang", "Jason", 95, 57, 92, 62],
["Dimitrousis", "Hector", 93, 45, 89, 96],
["Owens", "Sunna", 45, 50, 46, 54],
["Goldin", "Sandra", 25, 60, 45, 55],
["Giles", "Seth", 67, 73, 93, 64],
["Gurillo", "Melanie", 88, 88, 62, 79],
["Rykiel", "Kari", 67, 92, 54, 86],
["Shailes", "Dennis", 56, 70, 84, 62]]
myClass = np.asarray(myClass)
# get numbers only + mean calculations
Notes = myClass[:, 2:].astype(float)
Mean = np.mean(Notes, axis = 1).reshape(-1, 1)
# check status (pass by default)
Status = np.empty( (10,1), dtype='object')
Status[:] = 'Pass'
# now we can look for 'failed' status
t = np.where(Mean < 50)
Status[t] = 'Fail'
# Concat results
myClass = np.hstack((myClass, Mean, Status))
print(f"{myClass}") Providing:
Output: [['Lang' 'Carla' '49' '71' '95' '50' 66.25 'Pass']
['Bucklund' 'Pia' '86' '78' '83' '64' 77.75 'Pass']
['Lang' 'Jason' '95' '57' '92' '62' 76.5 'Pass']
['Dimitrousis' 'Hector' '93' '45' '89' '96' 80.75 'Pass']
['Owens' 'Sunna' '45' '50' '46' '54' 48.75 'Fail']
['Goldin' 'Sandra' '25' '60' '45' '55' 46.25 'Fail']
['Giles' 'Seth' '67' '73' '93' '64' 74.25 'Pass']
['Gurillo' 'Melanie' '88' '88' '62' '79' 79.25 'Pass']
['Rykiel' 'Kari' '67' '92' '54' '86' 74.75 'Pass']
['Shailes' 'Dennis' '56' '70' '84' '62' 68.0 'Pass']]
penultimate column = mean
Last column = status
|