#广播 ogrid函数创建一个列向量,再创建一个行向量,通常这两个向量代表一个矩形区域,之后就可以进行二元函数的运算了 a=np.arange(0,60,10).reshape(-1,1) #创建一个二维数组a,等同于a.reshape(6,1),a.shape=(6,1) b=np.arange(0,5) #创建一个一维数组shape=(5,),相当于5列 1行 c=b+a #此广播方法占用内存多,使用ogrid函数进行广播更节省内存 x,y=np.ogrid[:2:3j,:3:4j] #x是二维数组,相当于(3,1)列向量,y是二维数组,相当于(1,4)行向量 print(x,y) z=x*(x**2+y**2) #z算出来是一个矩阵,函数值以矩阵的形式表示,对应x,y拼接形成的矩阵每个网格节点上的函数值 print(z)
下面是对应的结果
x [[0.]
[1.]
[2.]]
y [[0. 1. 2. 3.]]
z [[ 0. 0. 0. 0.]
[ 1. 2. 5. 10.]
[ 8. 10. 16. 26.]]