【基础】NumPy简介与安装
发布时间: 2024-06-26 16:15:48 阅读量: 64 订阅数: 123
Python NumPy库安装使用笔记
![【基础】NumPy简介与安装](https://img-blog.csdnimg.cn/img_convert/6551dc917c3346f130fc916b24d7e449.png)
# 2.1 NumPy数组
NumPy数组是NumPy库的核心数据结构,它是一个多维同质数据集合,元素类型相同。NumPy数组提供了高效的内存管理和快速的数据操作,使其成为科学计算和数据分析的理想选择。
### 2.1.1 创建和初始化数组
创建NumPy数组有多种方法:
- `np.array(object)`:从Python对象(如列表、元组)创建数组。
- `np.zeros(shape, dtype)`:创建指定形状和数据类型的全零数组。
- `np.ones(shape, dtype)`:创建指定形状和数据类型的全一数组。
- `np.full(shape, fill_value, dtype)`:创建指定形状和填充值的数组。
- `np.arange(start, stop, step, dtype)`:创建指定范围和步长的数组。
# 2. NumPy基础知识
### 2.1 NumPy数组
#### 2.1.1 创建和初始化数组
NumPy数组是NumPy库中用于存储和操作多维数据的核心数据结构。创建NumPy数组有以下几种方法:
- **使用`np.array()`函数:**这是创建数组最常用的方法,它将给定的Python序列(如列表、元组)转换为NumPy数组。
```python
import numpy as np
# 创建一维数组
arr = np.array([1, 2, 3, 4, 5])
# 创建二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
```
- **使用`np.zeros()`和`np.ones()`函数:**这些函数创建指定形状和数据类型的数组,其中所有元素分别初始化为0或1。
```python
# 创建一个5x5的全是0的数组
arr = np.zeros((5, 5))
# 创建一个3x3的全是1的数组
arr = np.ones((3, 3))
```
- **使用`np.full()`函数:**此函数创建指定形状和数据类型的数组,其中所有元素初始化为给定的值。
```python
# 创建一个4x4的全是9的数组
arr = np.full((4, 4), 9)
```
- **使用`np.arange()`和`np.linspace()`函数:**这些函数创建一维数组,其中元素按等差数列或等距数列排列。
```python
# 创建一个从0到9(不包括9)的数组,步长为2
arr = np.arange(0, 9, 2)
# 创建一个从0到10(包括10)的数组,步长为1
arr = np.linspace(0, 10, 11)
```
#### 2.1.2 数组的属性和操作
NumPy数组具有以下属性和操作:
- **形状(shape):**数组的维度和每个维度的大小。
- **数据类型(dtype):**数组中元素的数据类型。
- **大小(size):**数组中元素的总数。
- **维度(ndim):**数组的维度数。
- **平坦化(flatten):**将多维数组转换为一维数组。
- **转置(transpose):**交换数组的维度。
- **复制(copy):**创建数组的一个副本。
- **连接(concatenate):**将多个数组连接在一起。
### 2.2 NumPy数据类型
NumPy提供了多种数据类型来表示不同类型的数据,包括:
#### 2.2.1 基本数据类型
- 整数类型:`int8`、`int16`、`int32`、`int64`
- 浮点类型:`float16`、`float32`、`float64`
- 布尔类型:`bool`
- 字符串类型:`str`、`bytes`
#### 2.2.2 自定义数据类型
除了基本数据类型外,NumPy还允许用户创建自定义数据类型。自定义数据类型可以包含多个字段,每个字段具有自己的数据类型。
### 2.3 NumPy广播和通用函数
#### 2.3.1 广播机制
广播机制允许对不同形状的数组进行操作,就像它们具有相同形状一样。当数组形状不匹配时,NumPy会将较小的数组扩展到较大数组的形状,以便执行逐元素操作。
#### 2.3.2 通用函数
NumPy提供了一组通用函数,用于对数组执行逐元素操作。这些函数包括数学运算(如加法、减法、乘法)、统计函数(如求和、求平均值)、逻辑函数(如比较、布尔运算)等。
# 3.1 数组索引和切片
#### 3.1.1 一维数组的索引和切片
一维数组的索引和切片与Python列表非常相似。可以使用整数索引来访问单个元素,也可以使用切片来访问元素的子集。
**整数索引**
要访问一维数组中的单个元素,可以使用整数索引。索引从0开始,表示数组中的第一
0
0