在写cousera上的deeplearning.ai课程作业时,遇到了一个问题
for i in range(A.shape[1]):# A.shape[1]指A的列数
if A[0,i] > 0.5 : #这里我之前使用的是A[i],但是会报错,说超出范围
Y_prediction[0,i] = 1
else :
Y_prediction[0,i] = 0
这里需要用A[0,i],因为A[i]指的是列表中的第i个元素,而实际上我们是将A的所有元素看作列表中的第一个元素(A只有一行)
具体解释如下:
>>>aaa=np.zeros((1,5))
>>>aaa
array([[ 0., 0., 0., 0., 0.]])
>>>aaa[1]
IndexError: index 1 is out of bounds for axis 0 with size 1
>>>bbb=[0,0,0,0] #列表bbb,可看作[[0, 0, 0, 0],]
>>>bbb
[[0, 0, 0, 0]]
>>>bbb[0]#列表bbb的第一个元素,为[0, 0, 0, 0]
>[0, 0, 0, 0]
>>>bbb=[[0,0,0,0],[1,1,1,1]]
>>>bbb[1]#列表bbb的第二个元素,为[1, 1, 1, 1]
[1, 1, 1, 1]