multiply(a,b)就是个乘法,如果a,b是两个数组,那么对应元素相乘

先来看个例子:

为什么上面的multiply(a, b)是这种结果,原因是multiply是ufunc函数

当我们使用ufunc函数对两个数组进行计算时,ufunc函数会对这两个数组的对应元素进行计算,因此它要求这两个数组有相同的大小(shape相同)。如果两个数组的shape不同的话,会进行如下的广播(broadcasting)处理:

让所有输入数组都向其中shape最长的数组看齐,shape中不足的部分都通过在前面加1补齐

输出数组的shape是输入数组shape的各个轴上的最大值

如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为1时,这个数组能够用来计算,否则出错

当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第一组值

上述4条规则理解起来可能比较费劲,让我们来看一个实际的例子。

先创建一个二维数组a,其shape为(6,1):

>>>a = np.arange(0, 60, 10).reshape(-1, 1)

>>>a

array([[ 0], [10], [20], [30], [40], [50]])

>>>a.shape

(6, 1)

再创建一维数组b,其shape为(5,):

>>>b = np.arange(0, 5)

>>>b

array([0, 1, 2, 3, 4])

>>>b.shape

(5,)

计算a和b的和,得到一个加法表,它相当于计算a,b中所有元素组的和,得到一个shape为(6,5)的数组:

>>>c = a + b

>>>c

array([[ 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的shape长度(也就是ndim属性)不同,根据规则1,需要让b的shape向a对齐,于是将b的shape前面加1,补齐为(1,5)。相当于做了如下计算:

>>>b.shape=1,5

>>>b

array([[0, 1, 2, 3, 4]])

这样加法运算的两个输入数组的shape分别为(6,1)和(1,5),根据规则2,输出数组的各个轴的长度为输入数组各个轴上的长度的最大值,可知输出数组的shape为(6,5)。

由于b的第0轴上的长度为1,而a的第0轴上的长度为6,因此为了让它们在第0轴上能够相加,需要将b在第0轴上的长度扩展为6,这相当于:

>>>b = b.repeat(6,axis=0)

>>>b

array([[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],

[0, 1, 2, 3, 4]])

由于a的第1轴的长度为1,而b的第一轴长度为5,因此为了让它们在第1轴上能够相加,需要将a在第1轴上的长度扩展为5,这相当于:

>>>a = a.repeat(5, axis=1)

>>>a

array([[ 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运算时,其内部并不会真正将长度为1的轴用repeat函数进行扩展,如果这样做的话就太浪费空间了

这样,就能知道为什么multiply(a, b)是这种结果了

from:http://blog.csdn.net/qq_18433441/article/details/54868889

python中multiply函数_【python入门】multiply用法相关推荐

  1. python中add函数_如何使用python中的add函数?

    之前向大家介绍过python中的求和函数sum函数,numpy中的sum函数,对于数组可以指定维度进行相加.numpy中还有另一种求和运算方法,即add函数.add函数不仅作用于numpy中加法运算, ...

  2. python中index函数_详解python中的index函数用法

    1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...

  3. python中multiple函数_关于多处理:在Python中将多个参数传递给pool.map()函数

    本问题已经有最佳答案,请猛点这里访问. 我需要一些方法来使用pool.map()中接受多个参数的函数.根据我的理解,pool.map()的目标函数只能有一个iterable作为参数,但是有没有其他参数 ...

  4. python中until函数_等待应用程序窗口:python中的pywinauto.timings.WaitUntilPasses

    我试图在pywinauto中使用waituntilpasses来给应用程序时间打开一个新窗口.我已使用SWAPY识别窗口详细信息. 为了进行测试,我手动打开了子窗口,因此WaitUntilPasses ...

  5. python 中arange函数_浅谈Python中range与Numpy中arange的比较

    本文先比较range与arange的异同点,再详细介绍各自的用法,然后列举了几个简单的示例,最后对xrange进行了简单的说明. 1. range与arange的比较 (1)相同点:A.参数的可选性. ...

  6. python中factor函数_左手用R右手Python系列——因子变量与分类重编码

    原标题:左手用R右手Python系列--因子变量与分类重编码 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业 ...

  7. python中主函数循环_python入门(三):分支、循环、函数详解

    1.分支 if循环格式: if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_b ...

  8. python中save 函数_超全Python图像处理讲解!花五天才整理的!

    文章目录1.1 .打开图片和显示图片 1.2.创建一个简单的图像 1.4.图像旋转和格式转换 三.ImageChops模块(图像合成) 四.ImageEnhance模块(色彩.亮度) Pillow模块 ...

  9. python中pack函数_关于pack()函数的文章推荐10篇 - pack

    php读写二进制文件可以使用pack和unpack函数. 今天要处理一个二进制文件的问题,所以需要用一下,特意了解一下pack的用法,unpack用法与此类似. 简单来说,pack函数就是给一个目标格 ...

  10. python中write函数_第9.7节 Python使用write函数写入文件内容

    一.语法 write(data) data为要写入的数据,可以为字符串str类型,也可以是bytes类型. 返回值为实际写入的数据数,在写入数据为str类型时,该数据为实际写入的UNIOCODE字符数 ...

最新文章

  1. HTML5语音输入方法
  2. linux shell 加、减、乘、除
  3. 怎么用计算机解开手机,怎么用电脑解开手机锁
  4. 这个顶会论文复现比赛,单篇最高现金奖3W!
  5. 简单存取款机的实现---控制输入变量的规则
  6. 阿里云高级技术专家周晶:基于融合与协同的边缘云原生体系实践
  7. WPF 依赖属性详解【转】
  8. 【已解决】抱歉,由于某种原因,PowerPoint 无法加载D:\mathtype\Office Support\64\MathType(PowerPoint 2016).ppam加载项。
  9. 帧大小超过交换机mtu_三层交换机与路由器区别在哪里?
  10. react中IOS手机里面两个input同时存在时,聚焦focus失效解决办法
  11. JavaScript—计算图片加载的张数。
  12. C/C++[codeup 2046]8皇后
  13. 人员招聘与培训实务【1】
  14. 美国地质勘探局官网(USGS)Landsat 8 OLI_TIRS 影像数据下载详解
  15. 一起聊一聊数字化,信息化,数据化,数字化转型(建议收藏)
  16. 天田AMADA数控折弯机触摸屏维修RGM21003主机电路板维修
  17. Android网络:开发浏览器(五)——功能完善之保存图片实现
  18. table中同一列中合并相同项
  19. 单招考计算机一般考什么科目,单招考试考什么内容 单招都考什么科目
  20. oracle导入dmp文件

热门文章

  1. 红日安全ATT&CK靶机实战系列之vulnstack7
  2. 苹果6plus网络显示无服务器,苹果iPhone6s/6s Plus现身网络,iPhone6c去向存疑
  3. 育境宏海给你科普一下tiktok收入最高的海外网红
  4. 8051(c51)单片机从汇编到C语言,从Boot到应用实践教程
  5. 计算机屏幕节电模式,显示器黑屏显示省电模式是怎么回事_电脑显示屏省电模式黑屏如何解决...
  6. c#操作mysql 执行语句_C# Command:操作数据库
  7. 使用InfoZip压缩解压zip文件
  8. rpm -Uvh 执行顺序
  9. 【暑假集训】拳王阿里
  10. 如何将图片保存为EPS格式