您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python 将numpy维度不同的数组相加相乘操作

51自学网 2021-10-30 22:49:09
  python
这篇教程python 将numpy维度不同的数组相加相乘操作写得很实用,希望能帮到您。

第一种

np矩阵可以直接与标量运算

>>>import numpy as np>>>arr1 = np.arange(12).reshape([2,2,3])>>>arr1array([[[ 0, 1, 2],  [ 3, 4, 5]],  [[ 6, 7, 8],  [ 9, 10, 11]]])>>>arr1*5array([[[ 0, 5, 10],  [15, 20, 25]],  [[30, 35, 40],  [45, 50, 55]]])>>>arr1-5array([[[-5, -4, -3],  [-2, -1, 0]],  [[ 1, 2, 3],  [ 4, 5, 6]]])>>>arr1**2array([[[ 0, 1, 4],  [ 9, 16, 25]],  [[ 36, 49, 64],  [ 81, 100, 121]]])

第二种

若arr1是高维数组,如果arr2的维度与arr1某个子数组维度相同,那么可以相互作运算。

PyDev console: starting.Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) [Clang 6.0 (clang-600.0.57)] on darwin>>>import numpy as np>>>arr1 = np.arange(12).reshape([2,2,3])>>>arr1array([[[ 0, 1, 2],  [ 3, 4, 5]],  [[ 6, 7, 8],  [ 9, 10, 11]]])>>>arr2 = np.array([2,2,2])>>>arr2array([2, 2, 2])>>>arr1*arr2array([[[ 0, 2, 4],  [ 6, 8, 10]],  [[12, 14, 16],  [18, 20, 22]]])>>>arr3 = np.arange(6).reshape([2,3])>>>arr1*arr3array([[[ 0, 1, 4],  [ 9, 16, 25]],  [[ 0, 7, 16],  [27, 40, 55]]])

补充:python 按不同维度求和,最值,均值

当变量维数加大时很难想象是怎样按不同维度求和的,高清楚一个,其他的应该就很清楚了,什么都不说了,上例子,例子一看便明白…..

a=range(27)a=np.array(a)a=np.reshape(a,[3,3,3])

输出a的结果是:

array([[[ 0, 1, 2],  [ 3, 4, 5],  [ 6, 7, 8]],  [[ 9, 10, 11],  [12, 13, 14],  [15, 16, 17]],  [[18, 19, 20],  [21, 22, 23],  [24, 25, 26]]])

我们来看看 aa=np.sum(a,-1)的输出:

array([[ 3, 12, 21],[30, 39, 48],[57, 66, 75]])

bb=np.sum(a,2) 的输出

array([[ 3, 12, 21],  [30, 39, 48],  [57, 66, 75]])

cc=np.sum(a,0)的输出:

array([[27, 30, 33],  [36, 39, 42],  [45, 48, 51]])

cc=np.sum(a,1)的输出:

array([[ 9, 12, 15],  [36, 39, 42],  [63, 66, 69]])

第-1个维度与第2个维度是一样的,第-1个维度实际是指最后一个维度。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。如有错误或未考虑完全的地方,望不吝赐教。


关于jupyter lab安装及导入tensorflow找不到模块的问题
python3 numpy中数组相乘np.dot(a,b)运算的规则说明
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。