“广播机制:通过扩展实现数组运算”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
numpy数组的广播机制
110讨论 | 贡献
第1行: 第1行:
 +
== numpy数组的广播机制 ==
 +
*注意numpy里数组之间的运算和线性代数中的矩阵运算是不一样的
 +
*同纬度和形状的数组之间就是同位置的元素两两匹配运算的结果
  
 +
----
 +
<br>import numpy as np
 +
<br>a=np.array([[ 1.,  2.,  1.], [ 1.,  2.,  1.]])
 +
<br>b=np.array([[ 1.,  2.,  3.], [ 1.,  2.,  3.]])
 +
<br>print(a.shape,b.shape)
 +
<br>>>>(2, 3) (2, 3)
 +
<br>print(a+b)
 +
<br>>>>array([[ 2.,  4.,  4.],[ 2.,  4.,  4.]])
 +
<br>print(a*b)
 +
<br>>>>array([[ 1.,  4.,  3.],[ 1.,  4.,  3.]])
 +
<br>print(a-b)
 +
<br>>>>array([[ 0.,  0., -2.],[ 0.,  0., -2.]])
 +
<br>print(a**b)
 +
<br>>>>array([[ 1.,  4.,  1.],[ 1.,  4.,  1.]])

2020年5月16日 (六) 11:31的版本

numpy数组的广播机制

  • 注意numpy里数组之间的运算和线性代数中的矩阵运算是不一样的
  • 同纬度和形状的数组之间就是同位置的元素两两匹配运算的结果


import numpy as np
a=np.array([[ 1., 2., 1.], [ 1., 2., 1.]])
b=np.array([[ 1., 2., 3.], [ 1., 2., 3.]])
print(a.shape,b.shape)
>>>(2, 3) (2, 3)
print(a+b)
>>>array([[ 2., 4., 4.],[ 2., 4., 4.]])
print(a*b)
>>>array([[ 1., 4., 3.],[ 1., 4., 3.]])
print(a-b)
>>>array([[ 0., 0., -2.],[ 0., 0., -2.]])
print(a**b)
>>>array([[ 1., 4., 1.],[ 1., 4., 1.]])