【基础】探索NumPy:多维数组与基本操作
发布时间: 2024-06-27 04:03:35 阅读量: 8 订阅数: 27 ![](https://csdnimg.cn/release/wenkucmsfe/public/img/col_vip.0fdee7e1.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/col_vip.0fdee7e1.png)
![【基础】探索NumPy:多维数组与基本操作](https://ask.qcloudimg.com/http-save/8934644/fd9a445a07f11c8608626cd74fa59be1.png)
# 2.1 数组的创建和初始化
NumPy 数组是存储同类型数据的集合。它们提供了高效的数据处理和操作功能。NumPy 提供了多种创建和初始化数组的方法。
### 2.1.1 使用内置函数创建数组
NumPy 提供了几个内置函数来创建数组,包括:
- `np.array()`:从列表、元组或其他可迭代对象创建数组。
- `np.zeros()`:创建指定形状的数组,所有元素都初始化为 0。
- `np.ones()`:创建指定形状的数组,所有元素都初始化为 1。
- `np.full()`:创建指定形状的数组,所有元素都初始化为给定的值。
例如,创建一个包含数字 1 到 10 的数组:
```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
```
# 2. NumPy数组基础
NumPy数组是NumPy库的核心数据结构,它是一种多维数组,可以存储各种类型的数据。本章节将介绍NumPy数组的创建、初始化、属性和操作。
### 2.1 数组的创建和初始化
#### 2.1.1 使用内置函数创建数组
NumPy提供了多种内置函数来创建数组,包括:
- `np.array()`:将现有数据转换为NumPy数组。
- `np.zeros()`:创建指定形状和数据类型的全零数组。
- `np.ones()`:创建指定形状和数据类型的全一数组。
- `np.empty()`:创建指定形状和数据类型的空数组,不进行初始化。
- `np.arange()`:创建指定范围内的等差数列数组。
- `np.linspace()`:创建指定范围内的等间隔数列数组。
```python
# 创建一个包含[1, 2, 3]的数组
arr = np.array([1, 2, 3])
# 创建一个5行3列的全零数组
zeros_arr = np.zeros((5, 3))
# 创建一个4行4列的全一数组
ones_arr = np.ones((4, 4))
# 创建一个5行3列的空数组
empty_arr = np.empty((5, 3))
# 创建一个范围为[0, 10)的等差数列数组
arange_arr = np.arange(0, 10)
# 创建一个范围为[0, 1],间隔为0.1的等间隔数列数组
linspace_arr = np.linspace(0, 1, 11)
```
#### 2.1.2 从现有数据创建数组
NumPy数组也可以从现有数据创建,例如列表、元组和字典。
```python
# 从列表创建数组
list_arr = np.array([[1, 2, 3], [4, 5, 6]])
# 从元组创建数组
tuple_arr = np.array(((1, 2, 3), (4, 5, 6)))
# 从字典创建数组
dict_arr = np.array({
'a': [1, 2, 3],
'b': [4, 5, 6]
})
```
### 2.2 数组的属性和操作
#### 2.2.1 数组的维度、形状和大小
数组的维度是指数组中嵌套数组的层数。数组的形状是一个元组,表示每个维度中的元素数量。数组的大小是数组中元素的总数量。
```python
# 获取数组的维度
print(arr.ndim) # 输出:1
# 获取数组的形状
print(arr.shape) # 输出:(3,)
# 获取数组的大小
print(arr.size) # 输出:3
```
#### 2.2.2 数组的切片、索引和广播
NumPy提供了多种方法来访问和修改数组中的元素,包括切片、索引和广播。
**切片**
切片允许我们提取数组的一部分。语法为:`arr[start:end:step]`,其中`start`是起始索引,`end`是结束索引(不包括在内),`step`是步长。
```python
# 提取数组中的前两个元素
print(arr[:2]) # 输出:[1, 2]
# 提取数组中的奇数索引元素
print(arr[1::2]) # 输出:[2]
# 提取数组中的所有元素,步长为2
print(arr[::2]) # 输出:[1, 3]
```
**索引**
索引允许我们使用整数索引访问数组中的特定元素。语法为:`arr[index]`。
```python
# 获取数组中的第一个元素
print(arr[0]) # 输出:1
# 获取数组中的最后一个元素
print(arr[-1]) # 输出:3
```
**广播**
广播是一种在不同形状的数组之间执行算术运算的机制。当数组的形状不匹配时,NumPy会自动扩展较小的数组,使其与较大的数组具有相同的形状。
```python
# 广播一个标量与一个数组
scalar = 2
print(scalar + arr) # 输出:[3, 4, 5]
```
# 3. NumPy数组操作
### 3.1 算术运算
NumPy支持广泛的算术运算,包括基本算术运算和数组广播。
#### 3.1.1 基本算术运算
NumPy支持以下基本算术运算:
- 加法(+):将两个数组中的相应元素相加。
- 减法(-):从第一个数组中减去第二个数组中的相应元素。
- 乘法(*):将两个数组中的相应元素相乘。
- 除法(/):将第一个数组中的相应元素除以第二个数组中的相应元素。
- 取余(%):返回第一个数组中相应元素除以第二个数组中相应元素的余数。
- 幂运算(**):将第一个数组中的相应元素提升到第二个数组中相应元素的幂。
```python
import numpy as np
# 创建两个数组
arr1 = np.array([1, 2, 3])
arr2 = np.array([
```
0
0
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)