53826


教科書通りのコードを入力しました．  
`IndexError: index 6 is out of bounds for axis 0 with size 6`  
のエラーが出てしまいます．  
ご教授ください．

[code]

    %matplotlib inline
    import numpy as np
    import matplotlib.pyplot as plt
    
    X=np.arange(-1.0,1.0,0.2)
    Y=np.arange(-1.0,1.0,0.2)
    
    Z=np.zeros((10,10))
    
    w_x=2.5
    w_y=3.0
    
    bias=0.1
    
    for i in range(10):
        for j in range(10):
    
            u=X[i]*w_x + Y[j]*w_y + bias
            y=1/(1+np.exp(-u))
            Z[j][i]=y
    
    plt.imshow(Z,"gray", vmin=0.0,vmax=1.0)
    plt.colorbar()
    plt.show()
    
[/code]


CC BY-SA 4.0
2019-03-30T07:08:31.997
53823
2020-04-01T01:39:43.663
2020-04-01T01:39:43.663
3060
32721
question
python python3
IndexError: index 6 is out of bounds for axis 0 with size 6


[np.arange](https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html)は等差数列を作成する関数です。

そのため`np.arange(start=-0.1,stop=1.0,step=0.2)`(startなど変数名は分かりやすくするため追記)は下記の6個しか値を返しません。

[code]

    array([-0.1,  0.1,  0.3,  0.5,  0.7,  0.9])
    
[/code]

なので`for i in range(10):`のコードでは`X[6]`以降にアクセスするため、表題のエラーが発生します。

以上が[編集前の質問(～Rev2)](https://ja.stackoverflow.com/posts/53823/revisions)への回答です。

* * *

最新の質問では下記のコードで正常に動作することを手元で確認しました。  
`IndexError: index 6 is out of bounds for axis 0 with size
6`が発生する要素がないのですが、編集後の内容でエラー内容が変わった場合は、質問を再度編集してエラー内容を追記なさってください。

[code]

    import numpy as np
    import matplotlib.pyplot as plt
    
    X = np.arange(-1.0,1.0,0.2)
    Y = np.arange(-1.0,1.0,0.2)
    Z = np.zeros((10,10))
    w_x=2.5
    w_y=3.0
    bias=0.1
    
    for i in range(10):
        for j in range(10):
            u=X[i]*w_x + Y[j]*w_y + bias
            y = 1/(1+np.exp(-u))
            Z[j][i]=y
    
    plt.imshow(Z,"gray", vmin=0.0,vmax=1.0)
    plt.colorbar()
    plt.show()
    
[/code]


CC BY-SA 4.0
2019-03-30T07:49:02.820
53826
2019-03-30T07:49:02.820
9820
53823
answer