Python Numpy での行列演算と混同しました。ドット演算とアウター演算は、線形代数のクラスで学んだように動作しないようです。
import numpy
n = numpy.arange(-5, 6)
w = numpy.arange(-20, 21)
n.shape
w.shape
outer = numpy.outer(w, n)
outer.shape
dot = numpy.dot(n, outer.transpose())
dot.shape
ここで、n は (11, 1) 行列、w は (41, 1) 行列です。wとnの大きさが合っていないと思います((41,1)outer(11,1))
繰り返しますが、ドットは奇妙だと思います。n は (11, 1) 行列、outer.transpose() は (11, 41) 行列です。サイズも合わないと思います。