【基础】Numpy数组的索引与切片
发布时间: 2024-06-27 19:31:26 阅读量: 67 订阅数: 113
numpy 索引及切片
![【基础】Numpy数组的索引与切片](https://img-blog.csdnimg.cn/img_convert/31a81f8f95e7bc5edfb98a79c498a042.png)
# 1. Numpy数组的基础**
Numpy数组是Numpy库中用于存储和处理多维数据的核心数据结构。它提供了高效的内存管理和快速的数据操作,使其成为科学计算、数据分析和机器学习等领域的重要工具。
Numpy数组本质上是同质数据元素的集合,这些元素具有相同的类型和大小。它们可以是一维(向量)、二维(矩阵)或更高维的数据结构。Numpy数组使用一个称为dtype的对象来定义元素的数据类型,例如int、float或bool。
创建Numpy数组有几种方法,包括使用np.array()函数从现有列表或元组中创建数组,使用np.zeros()或np.ones()函数创建具有特定形状和元素值的数组,或者使用np.arange()或np.linspace()函数创建具有特定范围或间隔的数组。
# 2. Numpy数组的索引
### 2.1 基本索引
基本索引允许我们通过单个索引值或一组索引值来访问数组中的元素。语法如下:
```python
array[index]
```
其中,`index` 可以是整数、整数元组或布尔掩码。
**整数索引**:整数索引用于访问数组中的单个元素。例如:
```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[2]) # 输出:3
```
**整数元组索引**:整数元组索引用于访问数组中的多个元素。例如:
```python
print(arr[[1, 3]]) # 输出:[2, 4]
```
### 2.2 高级索引
高级索引允许我们使用更复杂的索引技术来访问数组中的元素。
#### 2.2.1 布尔索引
布尔索引使用布尔掩码来选择数组中的元素。布尔掩码是一个与数组形状相同的布尔数组,其中 `True` 值表示要选择的元素。例如:
```python
arr = np.array([[1, 2], [3, 4]])
mask = arr > 2
print(arr[mask]) # 输出:[3, 4]
```
#### 2.2.2 数组索引
数组索引使用另一个数组作为索引来选择数组中的元素。例如:
```python
arr = np.array([[1, 2], [3, 4]])
indices = np.array([0, 1])
print(arr[indices]) # 输出:[1, 4]
```
#### 2.2.3 组合索引
组合索引允许我们结合基本索引和高级索引技术。例如:
```python
arr = np.array([[1, 2], [3, 4]])
print(arr[[0, 1], [1, 0]]) # 输出:[2, 3]
```
此代码使用布尔索引选择第一行和第二行,然后使用整数索引选择第一列和第二列。
**代码逻辑分析:**
```python
# 创建一个 2x2 的数组
arr = np.array([[1, 2], [3, 4]])
# 创建一个布尔掩码,选择第一行和第二行
mask = np.array([True, True])
# 使用布尔掩码选择行
rows = arr[mask]
# 创建一个整数索引,选择第一列和第二列
cols = np.array([1, 0])
# 使用整数索引选择列
result = rows[:, cols]
print(result) # 输出:[2, 3]
```
**参数说明:**
* `arr`:输入数组
* `mask`:布尔掩码,用于选择行
* `rows`:选择后的行
* `cols`:整数索引,用于选择列
* `result`:最终结果数组
# 3.1 基本切片
基本切片是使用方括号 [] 访问数组元素的一种简单方法。它允许我们通过指定起始索
0
0