解答例
最大値を返す関数の例は以下になります。
import numpy as np
def my_max(x):
max=0
for j in np.arange(len(x)):
if x[j]>max:
max=x[j]
return max
x=np.array([7,2,4,2,9,4,3,5,6,1])
my_max(x)
上の関数だと、xの最大値がマイナスだとうまく機能しません。なぜなら最初にmaxとして0を代入しているからです。
この問題を回避するには、最初にmaxにx[0]を代入してしまうという手もあります。その場合はループさせる回数がlen(x)-1になります。こんな感じです。
def my_max2(x):
max=x[0]
for j in np.arange(len(x)-1):
if x[j+1]>max:
max=x[j+1]
return max
x=np.array([-2,-1,-10,-5,-6])
my_max(x)
my_max2(x)
後者のmy_max2()が正しい値を返しています。