I’m trying to append values from a for loop into a numpy array. While the values are correct, the array only returns none values. The values entered are from another numpy array.
import numpy as np
import matplotlib.pyplot as plt
j=np.array([14,15,16,16,16,22,22,24,24,25,25,25,25,25])
u=np.unique(j)
def P(age):
sum=0
for i in range(14):
if j[i]==age:
sum=sum+1
else:
sum=sum
print(sum/14)
p = []
for i in range(6):
p.append(P(u[i]))
p=np.array(p)
print(p)
print(type(p))
Output:
0.07142857142857142
0.07142857142857142
0.21428571428571427
0.14285714285714285
0.14285714285714285
0.35714285714285715
[None None None None None None]
<class 'numpy.ndarray'>
>Solution :
Function "P" doesn’t have a return function, hence equaling None each time.
def P(age):
sum=0
for i in range(14):
if j[i]==age:
sum=sum+1
else:
sum=sum
print(sum/14)
return sum/14
Shown here ^, you can return the sum.