Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

278
Views
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:

from Statistics import Statistics 
X=(0,1,3,5)
mean_x=Statistics.Mean(X)
print(mean_x)
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

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)
over 4 years ago · Santiago Trujillo Report

0

You define the instance method, but there is no instance.

Also, it is better to change the 'Mean' to 'mean'.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!