得到單位矩陣可以使用的eye
k
參數設定的指標對角:
>>> m1= np.eye((10))
>>> m2= np.eye((10),k=1)
>>> m3 = np.eye((10),k=-1)
>>> m1+m2+m3
array([[ 1., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 1., 1., 1., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 1., 1., 1., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 1., 1., 1., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 1., 1., 1., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 1., 1., 1., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 1., 1., 1., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 1., 1., 1.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 1., 1.]])
或者:
>>> np.triu(np.tril(np.ones((10,10)),k=1),k=-1)
array([[ 1., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 1., 1., 1., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 1., 1., 1., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 1., 1., 1., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 1., 1., 1., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 1., 1., 1., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 1., 1., 1., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 1., 1., 1.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 1., 1.]])
聞起來像莫名其妙功課? – DominikAngerer
爲什麼要特別使用'for'循環? 'numpy'通常可以避免顯式循環。 – jonrsharpe