Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

TypeError: Mean() missing 1 required positional argument: 'data'

I’m trying to program a basic mean calculator using classes. However, I’m getting the error

TypeError: Mean() missing 1 required positional argument: 'data'

I have two files: one which contains the class with the mean function and then one which calls it, and that is when I’m getting the error. My code is:

class Statistics:
    def __init__(self,mean_x,mean_y,var,covar):
        self.mean_x=mean_x
        self.mean_y=mean_y
        self.var=var
        self.covar=covar
    
    def Mean(self,data):
        return sum(data)/float(len(data))

And the code which throws the error is:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

from Statistics import Statistics 
X=(0,1,3,5)
mean_x=Statistics.Mean(X)
print(mean_x)

>Solution :

Mean is an instance method, so you need to call it on an instance (which will become the self argument for the method invocation).

statistics = Statistics(None, None, None, None)
mean_x = statistics.Mean((0, 1, 3, 5))

Since the parameters on Statistics.__init__ aren’t used I’d suggest removing them (or just removing the __init__ altogether):

class Statistics:
   
    def mean(self, data):
        return sum(data)/float(len(data))
from Statistics import Statistics 
X = (0,1,3,5)
statistics = Statistics()
mean_x = statistics.mean(X)
print(mean_x)

Note that Python comes with a statistics module that has a mean function built in:

import statistics

X = (0,1,3,5)
mean_x = statistics.mean(X)
print(mean_x)
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading