python如何调用numpy的函数,numpy语法

  python如何调用numpy的函数,numpy语法

  Multiply(a,b)是乘法。如果a和b是两个数组,对应的元素相乘。

  numpy . multiply numpy . multiply(x1,x2[,out])=ufunc multiply 按元素乘参数。参数:x1,x2:要相乘的array _ like输入数组。返回:y:ndarray x1和x2的乘积,按元素排序。如果x1和x2都是标量,则返回标量。注意在阵列广播方面与x1 * x2相同。示例np.multiply(2.0,4.0)8.0 x1=np.arange(9.0)。shape((3,3))x2=NP . arange(3.0)NP . multiply(x1,x2)数组([[ 0。 1. 4.], [ 0. 4. 10.], [ 0. 7. 16.]])为什么上面的np.multiply(x1, x2)是这种结果,原因是multiply是ufunc函数

  当我们用ufunc函数计算两个数组时,ufunc函数会计算这两个数组对应的元素,所以要求两个数组大小相同(形状相同)。如果两个阵列的形状不同,将执行以下广播(广播)处理:

  让所有输入数组与形状最长的数组对齐,形状的不足通过在前面加1来填充。输出数组的形状是输入数组每个轴上的最大值。如果输入数组的一个轴与输出数组的对应轴相同或长度为1,则该数组可用于计算,否则会出错。当输入数组的轴的长度为1时,该轴上的第一组值将用于运算。以上四条规则可能很难理解。让我们看看。

  首先,创建一个形状为(6,1)的二维数组A:

  A=NP。Arange (0,60,10)。shape (-1,1)一个数组([[0],[10],[20],[30],[40],[50]]) A. shape (6,1)再次创建一维。

  b=np.arange(0,5) barray([0,1,2,3,4]) b.shape(5,)

  计算A和B的和得到一个加法表,相当于计算A和B中所有组元素的和得到一个形状为(6,5)的数组:

  c=a b carray([[ 0,1,2,3,4],[10,11,12,13,14],[20,21,22,23,24],[30,31,32,33,34],[40,41,42,43,44],[50,51,52,53,54])c . shape(6,5)

  由于A和B的形状长度不同(即ndim属性),根据规则1,需要将B的形状与A对齐,所以在B的形状前面加1,完成为(1,5)。相当于以下计算:

  b.shape=1,5 barray([[0,1,2,3,4]])

  该加法运算中两个输入数组的形状分别为(6,1)和(1,5)。根据规则2,输出数组各轴的长度是输入数组各轴长度的最大值,所以输出数组的形状为(6,5)。

  由于B在0轴上的长度是1,而A在0轴上的长度是6,为了使它们在0轴上相加,需要将B在0轴上的长度延长到6,相当于:

  b=b.repeat(6,axis=0) barray([[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]])

  由于A的第一轴的长度是1,B的第一轴的长度是5,为了在第一轴上把它们相加,需要把A在第一轴上的长度延长到5,相当于:

  a=a.repeat(5,轴=1) aarray([[ 0,0,0,0,0,0],[10,10,10,10,10],[20,20,20,20,20],[30,30,30,30,30],[40,40,40,40,40],[50,50,50,50,50]])

  经过上述处理后,可以根据相应的元素添加A和B。

  当然,numpy在执行a b操作时,并没有真正用repeat函数来扩展长度为1的轴,那样会浪费空间。

  这样就可以知道为什么结果是np.multiply(x1,x2)了。

  win7中qq截图的快捷键是什么

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: