munpy 数组间运算

数组间运算

1.数组与数的运算

arr = np.array([[1,2,3,2,1,4],[5,6,1,2,3,1]])
arr + 1#每个元素分别+1
"""
array([[2, 3, 4, 3, 2, 5],
       [6, 7, 2, 3, 4, 2]])
"""

arr/2#每个元素分别除2
"""
array([[0.5, 1. , 1.5, 1. , 0.5, 2. ],
       [2.5, 3. , 0.5, 1. , 1.5, 0.5]])
"""

2.数组与数组的运算

arr1 = np.array([[1,2,3,2,1,4],[5,6,1,2,3,1]])
arr2 = np.array([[1,2,3,4],[3,4,5,6]])
arr1 + arr2

#上述代码无法运行
  • 数组在进行矢量化运算时,要求数组的形状是相等的。当形状不相等的数组执行算术运算的时候,就会出现广播机制,该机制会对数组进行扩展,是数组的shape属性值一样,这样,就可以进行矢量化运算了。

  • 广播机制实现了两个或两个以上数组的运算,即使这些数组的shape不是完全相同的,只需要满足如下任意一个条件即可:

    • 1.数组的某一维度等长
    • 其中一个数组的某一维度为1
  • 广播机制需要扩展维度小的数组,使得它与维度最大的数组的shape值相同,以便使用元素级函数或者运算符进行运算

    • 同时也方便计算,要不然你怎么分啊
arr1 = np.array([[0],[1],[2],[3]])
arr1.shape#(4, 1),4行1列

arr2 = np.array([1,2,3])#一维数组,1行3列
arr2.shape

arr1 + arr2
"""
输出结果:
array([[1, 2, 3],
       [2, 3, 4],
       [3, 4, 5],
       [4, 5, 6]])
"""

posted @ 2023-02-24 15:03  小杨的冥想课  阅读(24)  评论(0编辑  收藏  举报