Hackerrank Mean, Var, and Std Solution

Hackerrank Mean, Var, and Std Solution

mean

The mean tool computes the arithmetic mean along the specified axis.

import numpy

my_array = numpy.array([ [1, 2], [3, 4] ])

print numpy.mean(my_array, axis = 0)        #Output : [ 2.  3.]
print numpy.mean(my_array, axis = 1)        #Output : [ 1.5  3.5]
print numpy.mean(my_array, axis = None)     #Output : 2.5
print numpy.mean(my_array)                  #Output : 2.5

By default, the axis is None. Therefore, it computes the mean of the flattened array.

var

The var tool computes the arithmetic variance along the specified axis.

import numpy

my_array = numpy.array([ [1, 2], [3, 4] ])

print numpy.var(my_array, axis = 0)         #Output : [ 1.  1.]
print numpy.var(my_array, axis = 1)         #Output : [ 0.25  0.25]
print numpy.var(my_array, axis = None)      #Output : 1.25
print numpy.var(my_array)                   #Output : 1.25

By default, the axis is None. Therefore, it computes the variance of the flattened array.

std

The std tool computes the arithmetic standard deviation along the specified axis.

import numpy

my_array = numpy.array([ [1, 2], [3, 4] ])

print numpy.std(my_array, axis = 0)         #Output : [ 1.  1.]
print numpy.std(my_array, axis = 1)         #Output : [ 0.5  0.5]
print numpy.std(my_array, axis = None)      #Output : 1.11803398875
print numpy.std(my_array)                   #Output : 1.11803398875

By default, the axis is None. Therefore, it computes the standard deviation of the flattened array.


Task

You are given a 2-D array of size X.
Your task is to find:

  1. The mean along axis
  2. The var along axis
  3. The std along axis

Input Format

The first line contains the space separated values of  and .
The next  lines contains  space separated integers.

Output Format

First, print the mean.
Second, print the var.
Third, print the std.

Sample Input

2 2
1 2
3 4

Sample Output

[ 1.5  3.5]
[ 1.  1.]
1.11803398875

Solution in python3

Approach 1.

import numpy
N,M = map(int,input().split())
A = numpy.array([input().split() for _ in range(N)], int)
print(A.mean(axis=1))
print(A.var(axis=0))
print(A.std())

Approach 2.

import numpy
a = numpy.array([input().split() for _ in range(int(input().split()[0]))],int)
print(numpy.mean(a,axis=1),numpy.var(a,axis=0),numpy.std(a),sep="\n")

Approach 3.

import numpy
n,m=map(int,input().split())
a=numpy.array([list(map(int,input().split())) for i in range(n)])
print(numpy.mean(a,axis=1))
print(numpy.var(a,axis=0))
print(numpy.std(a,None))

Solution in python

Approach 1.

import numpy
N, M = map(int, raw_input().split())
A = numpy.array([map(int, raw_input().split()) for i in range(N)])
print numpy.mean(A,1)
print numpy.var(A,0)
print numpy.std(A)

Approach 2.

import numpy
N, M = map(int, raw_input().split())
A = numpy.array([map(int, raw_input().split())for _ in range(N)])
print numpy.mean(A, axis = 1)
print numpy.var(A, axis = 0)
print numpy.std(A)

Approach 3.

import numpy
n,m = map(int,raw_input().split())
A = []
for _ in range(n):
    A.append(map(int,raw_input().split()))
A = numpy.array(A)
print numpy.mean(A,axis = 1)
print numpy.var(A,axis = 0)
print numpy.std(A)