【基础】NumPy:数组运算与常用函数
发布时间: 2024-06-26 11:53:59 阅读量: 65 订阅数: 105
![【基础】NumPy:数组运算与常用函数](https://files.realpython.com/media/fig-1.1d8bc9379e87.png)
# 1. NumPy简介**
NumPy(Numerical Python)是一个用于科学计算的Python库。它提供了强大的多维数组对象和用于处理这些数组的高级函数。NumPy数组是同质的,这意味着它们包含相同数据类型的元素。这使得NumPy在处理大型数据集和进行数值计算时非常高效。
NumPy数组具有许多有用的特性,包括:
* **多维性:**NumPy数组可以具有多个维度,这使得它们可以表示复杂的数据结构,例如图像和表格。
* **广播机制:**广播机制允许对不同形状的数组进行操作,从而简化了数值计算。
* **高效性:**NumPy使用优化的C代码实现,这使得它在处理大型数据集时非常高效。
# 2. NumPy数组运算
### 2.1 基本算术运算
#### 2.1.1 加减乘除
NumPy支持对数组进行基本的算术运算,包括加法(`+`)、减法(`-`)、乘法(`*`)和除法(`/`)。这些运算符可以作用于两个数组或一个数组和一个标量。
**代码示例:**
```python
import numpy as np
# 创建两个数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 加法
c = a + b
print(c) # 输出:[5 7 9]
# 减法
d = a - b
print(d) # 输出:[-3 -3 -3]
# 乘法
e = a * b
print(e) # 输出:[ 4 10 18]
# 除法
f = a / b
print(f) # 输出:[0.25 0.4 0.5 ]
```
**参数说明:**
* `a`, `b`: 参与运算的数组或标量。
* `c`, `d`, `e`, `f`: 运算结果。
**逻辑分析:**
这些运算符逐元素地对数组中的元素进行运算。如果数组具有不同的形状,则较小的数组将广播到较大数组的形状。
#### 2.1.2 幂运算和开方
NumPy还支持幂运算(`**`)和开方运算(`np.sqrt`)。
**代码示例:**
```python
# 幂运算
g = a ** 2
print(g) # 输出:[1 4 9]
# 开方
h = np.sqrt(a)
print(h) # 输出:[1. 1.41421356 1.73205081]
```
**参数说明:**
* `a`: 参与运算的数组或标量。
* `g`, `h`: 运算结果。
**逻辑分析:**
幂运算将数组中的每个元素提升到指定的幂。开方运算计算数组中每个元素的平方根。
### 2.2 数组比较和逻辑运算
#### 2.2.1 比较运算符
NumPy支持对数组进行比较运算,包括等于(`==`)、不等于(`!=`)、大于(`>`)、小于(`<`)、大于等于(`>=`)和小于等于(`<=`)。这些运算符返回一个布尔数组,其中 True 表示比较结果为真,False 表示比较结果为假。
**代码示例:**
```python
# 比较运算
i = a > b
print(i) # 输出:[False False False]
```
**参数说明:**
* `a`, `b`: 参与比较的数组或标量。
* `i`: 比较结果的布尔数组。
**逻辑分析:**
这些运算符逐元素地比较数组中的元素。如果数组具有不同的形状,则较小的数组将广播到较大数组的形状。
#### 2.2.2 逻辑运算符
NumPy还支持逻辑运算符,包括逻辑与(`&`)、逻辑或(`|`)和逻辑非(`~`)。这些运算符对布尔数组进行操作,返回一个布尔数组。
**代码示例:**
```python
# 逻辑运算
j = (a > 1) & (b < 5)
print(j) # 输出:[False False True]
```
0
0