numpy(三)

广播:

  x= np.arange(12).reshape((3,4))

  a= np.arange(3)

  b=np.arange(3)[;,np.newaxis]

  c=a+b

  a,b会扩散成公共的形状进行计算

  

  广播规则:

  如果两个数组的维度数不相同,那么小维度的数组形状将会在最左边补上1

  如果两个数组形状在任意维度都不匹配,那么会沿着维度为1的维度扩散成另一数组形状

  如果两个数组的形状在任意维度都不匹配,且没有任何维度为1则会引发异常

 

示例:

  m=np.ones((2,3))

  a=np.arange(3)

  m.shape =(2,3)

  a.shape(3,)

  

  由于第一规则,a.shape ->(1,3)

  由于第二规则 a.shape ->(2,3)

 

示例:

  a=np.arange(3).reshape((3,1))

  b=np.arange(3)

 

  a.shape = (3,1)

  b.shape(3,)

  

  由于规则一:

  b.shape ->(1,3)

  由于规则二:

  a.shape ->(3,3)

  b.shape ->(3,3)

  

 

广播应用:

  归一化

  二维数组

x=np.linspace(0,5,50)

y=np.linspace(0,5,50)[:,np.newaxis]

z=np.sin(x) **10+np.cos(10+y*x)*np.cos(x)

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

  

posted @ 2019-04-01 15:10  saber丶吾王  Views(142)  Comments(0Edit  收藏  举报