I have a block of code that provides five arrays:
for i in range(10):
x = pic[10,15+i]
This produces the following ten arrays:
[504 591 471 ... 0 0 0]
[748 753 658 ... 94 138 101]
[814 781 710 ... 0 0 0]
[754 719 663 ... 0 0 0]
[1068 982 1096 ... 0 0 0]
[845 811 709 ... 0 0 0]
[1002 985 915 ... 0 0 0]
[1036 916 860 ... 0 0 0]
[570 623 722 ... 0 0 0]
[728 711 738 ... 0 0 90]
There are 1220 elements in each arrays which are presented by ... . I want to calculate the mean of those 10 arrays by element by element (column wise). So, I want a final output like this:
[860.9, 827.4, 795.3, ... 9.4, 13.8, 19.1]
I am not getting how to do it in Python. Any help would be highly appreciated. Also, if you can help me calculate the variance as well it would be an amazing help!
Using zip function:-
Code:-
import statistics
#Using package statistics :- Variance
#Using Zip function -: mean
lis=[[22,23,20,32,45,0],
[25,23,20,33,39,0],
[26,23,26,31,56,0],
[28,23,26,0,11,0],
[25,34,25,0,0,0]]
mean=[]
variance=[]
for i in zip(*lis):
mean.append(sum(i)/len(i))
variance.append(statistics.variance(i))
print(mean)
print(variance)
Output:-
[25.2, 25.2, 23.4, 19.2, 30.2, 0.0]
[4.7, 24.2, 9.8, 307.7, 560.7, 0]
Updated:- Query- Try this Don't know is it working or not please let me know..
x=[]
mean=[]
variance=[]
for i in range(10):
x.append(pic[10,15+i])
for i in zip(*x):
mean.append(sum(i)/len(i))
length=len(i)
x=sum(i)/length #x is also a mean
variance.append(sum((j - x) ** 2 for j in i)/(length-1))