学无先后,达者为师

网站首页 编程语言 正文

Numpy中不同维度数组之间的计算

作者:Sun_Sherry 更新时间: 2022-02-05 编程语言
1 numpy数组维度

  numpy中提供了shape属性可以直接查看数组的维度。具体如下:
在这里插入图片描述
  上图中 a a a一维数组,其shape只返回一个元素, b b b为二维数组,其shape有两个元素, c c c为三维数组,其shape中返回三个元素。另外,对数组中的某一行或某一列进行切片操作时也可以形成不同维度的数组,具体如下:
在这里插入图片描述

2 数组运算
2.1 同维度数组进行运算

(1)当同维度数组进行运算时,如果各个维度上的元素个数完全相同时,可以进行计算。
在这里插入图片描述
  在上图中, a , b , c a,b,c a,b,c都是二维数组,但数组 a a a的shape的结果为 ( 2 , 2 ) (2,2) (2,2),数组 b b b的shape结果为 ( 2 , 3 ) (2,3) (2,3),数组 c c c的shape结果为 ( 2 , 2 ) (2,2) (2,2)。从试验结果中可以发现,数组 a a a b b b之间无法进行运算,但数组 a a a c c c之间可以进行运算。
(2)当同维度数组进行计算时,如果两个数组对应维度上的元素个数不相等但其中一个数组的shape元素值为1时,仍然可以进行计算。(numpy中可以自动扩展)
在这里插入图片描述
  上图中 a 、 b 、 c a、b、c abc都是二维数组。数组 a a a的shape为 ( 2 , 2 ) (2,2) (2,2),数组 b b b的shape为 ( 2 , 1 ) (2,1) (2,1),数组 c c c的shape为 ( 1 , 2 ) (1,2) (1,2)。它们之间对应维度上的元素个数都不完全相同,但这三个数组中的任意两个之间都可以进行运算。以 a − b a-b ab为例,其计算过程如下:
在这里插入图片描述

2.2 不同维度数组进行计算

  当数组之间的维度不同,可以看作前一部分的特例。
在这里插入图片描述
  上图中 b b b都是一维数组,当其shape属性为 ( 3 , ) (3,) (3,)时,无法与数组 a a a进行计算;当其shape为 ( 2 , ) (2,) (2,)时,可以与数组 a a a进行计算。从结果可以发现,计算时是先把 b b b当成了shape为 ( 1 , N ) (1,N) (1,N)的二维数组,然后再与 a a a进行的计算。

原文链接:https://blog.csdn.net/yeshang_lady/article/details/118463680

栏目分类
最近更新