numpy:数组的运算与广播机制

Posted xmcwm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy:数组的运算与广播机制相关的知识,希望对你有一定的参考价值。

  先将模块导入到文件中

import numpy as np

  创建两个数组

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

1、数组的运算

(1)四则运算

print("数组相加:
", arr1 + arr2) # 对应位置元素相加
print("数组相减:
", arr1 - arr2) # 对应位置元素相减
print("数组相乘:
", arr1 * arr2)  # 对应位置元素相乘
print("数组相乘:
", np.multiply(arr1, arr2))  # 对应位置元素相乘
print("数组相乘:
", type(np.multiply(arr1, arr2)))  # 对应位置元素相乘 ,返回数组
print("矩阵对应位置元素相乘:
", type(np.multiply(np.mat(arr1), np.mat(arr2))))  # 返回矩阵
print("数组相除:
", arr1 / arr2) # 对应位置元素相除
print("数组相除:
", arr2 / arr1) # 对应位置元素相除,注意:0不能做除数
print("数组相幂:
", arr1 ** arr2)  # 对应位置求幂

(2)比较运算

# 返回的是对应位置的比较结果
print(" arr1 > arr2 :
", arr1 > arr2)
print(" arr1 < arr2 :
", arr1 < arr2)
print(" arr1 == arr2 :
", arr1 == arr2)
print(" arr1 != arr2 :
", arr1 != arr2)

  比较运算——返回bool数组,比较条件成立返回True,条件不成立则返回False

(3)逻辑运算

print("any: ", np.any(arr1 == arr2))
print("any: ", np.any(arr1 > arr2))
print("all: ", np.all(arr1 == arr2))
print("all: ", np.all(arr1 <= arr2))

  逻辑运算or、and,返回bool值,or——any()只要一个满足条件,返回Trueand——all()只有全部满足条件,才返回True

2、数组的广播机制

  创建两个数组

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

  arr1arr3进行相加运算

print("数组相加的结果:
", arr1 + arr3)

  数组相加的结果:

技术图片

以上是关于numpy:数组的运算与广播机制的主要内容,如果未能解决你的问题,请参考以下文章

numpy 广播

NumPy广播

Numpy 高级

Numpy常用概念-对象的副本和视图向量化广播机制

numpy中的广播机制

Numpy中的广播(Broadcasting)