Home > Back-end >  Cannot use print function and mean function from numpy
Cannot use print function and mean function from numpy

Time:11-05

I am taking a course on Udacity called Intro into Data Analysis and I am trying to run this code but I keep getting an error. I am using Python3. Thanks in advance. In the tutorial videos that were explaing the code and the course everything was working fine ( I assumed because it is a different version of Python). I tried many things but I still don't seem to be able to make it work.

%pylab inline

import matplotlib.pyplot as plt
import numpy as np


def describe_data(data):
    print ('Mean:', np.mean(data))
    print ('Standard deviation:', np.std(data))
    print ('Minimum:', np.min(data))
    print ('Maximum:', np.max(data))
    plt.hist(data)
    
describe_data(total_minutes_by_account.values())

This is the error:

Populating the interactive namespace from numpy and matplotlib
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-34-669ffc75246c> in <module>
     14     plt.hist(data)
     15 
---> 16 describe_data(total_minutes_by_account.values())

<ipython-input-34-669ffc75246c> in describe_data(data)
      8 # Summarize the given data
      9 def describe_data(data):
---> 10     print ('Mean:', np.mean(data))
     11     print ('Standard deviation:', np.std(data))
     12     print ('Minimum:', np.min(data))

<__array_function__ internals> in mean(*args, **kwargs)

~\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py in mean(a, axis, dtype, out, keepdims, where)
   3417             return mean(axis=axis, dtype=dtype, out=out, **kwargs)
   3418 
-> 3419     return _methods._mean(a, axis=axis, dtype=dtype,
   3420                           out=out, **kwargs)
   3421 

~\Anaconda3\lib\site-packages\numpy\core\_methods.py in _mean(a, axis, dtype, out, keepdims, where)
    188             ret = ret.dtype.type(ret / rcount)
    189     else:
--> 190         ret = ret / rcount
    191 
    192     return ret

TypeError: unsupported operand type(s) for /: 'dict_values' and 'int'

CodePudding user response:

I supposed "total_minutes_by_account" is a dataframe. So you can do it in the following way.

import matplotlib.pyplot as plt
import numpy as np

def describe_data(data):
    print ('Mean:', np.mean(data))
    print ('Standard deviation:', np.std(data))
    print ('Minimum:', np.min(data))
    print ('Maximum:', np.max(data))
    plt.hist(data)

describe_data(total_minutes_by_account.values.tolist())

You need to convert your dataframe values to list before performning any numpy operations.

  • Related