【基础】NumPy库基础:多维数组与数组操作
立即解锁
发布时间: 2024-06-24 14:28:24 阅读量: 155 订阅数: 269 


NumPy基础:多维数组


# 2.1 多维数组的创建和操作
NumPy中的数组可以是多维的,即具有多个维度。维度数称为数组的秩。创建一个多维数组时,需要指定每个维度的长度。
### 2.1.1 数组的创建
创建多维数组可以使用`numpy.array()`函数,并指定一个嵌套列表作为参数。例如,创建一个三维数组:
```python
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(arr)
```
输出:
```
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]]
```
### 2.1.2 数组的索引和切片
与一维数组类似,多维数组也可以使用索引和切片进行访问。索引和切片操作分别使用`[]`和`[:]`。例如,获取三维数组中的一个元素:
```python
print(arr[0, 1, 2]) # 输出:6
```
切片操作可以获取数组的一部分。例如,获取三维数组中的一个子数组:
```python
print(arr[0, :, :]) # 输出:[[1 2 3]
# [4 5 6]]
```
# 2. NumPy数组基础
NumPy数组是NumPy库的核心数据结构,它提供了高效地存储和操作多维数据的机制。本节将深入探讨NumPy数组的基础知识,包括创建、操作、数据类型和类型转换。
### 2.1 多维数组的创建和操作
#### 2.1.1 数组的创建
NumPy提供了多种创建数组的方法:
- **np.array():**将Python列表、元组或其他可迭代对象转换为NumPy数组。
- **np.zeros():**创建一个指定形状和数据类型的全零数组。
- **np.ones():**创建一个指定形状和数据类型的全一数组。
- **np.full():**创建一个指定形状和数据类型的数组,其中所有元素都填充为给定的值。
- **np.arange():**创建一个指定范围内的等差数列数组。
- **np.linspace():**创建一个指定范围内的等距数列数组。
#### 2.1.2 数组的索引和切片
NumPy数组可以通过下标和切片进行索引和切片:
- **下标:**使用方括号访问数组中的单个元素或子数组。
- **切片:**使用方括号和冒号访问数组中的一组连续元素。
```python
# 创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 访问单个元素
print(arr[0, 1]) # 输出:2
# 访问子数组
print(arr[0, :]) # 输出:[1 2 3]
# 访问切片
print(arr[:, 1:]) # 输出:[[2 3] [5 6]]
```
#### 2.1.3 数组的广播和形状转换
**广播:**当两个形状不同的数组进行算术运算时,NumPy会自动将较小的数组广播到较大数组的形状,从而实现逐元素运算。
**形状转换:**使用reshape()方法可以改变数组的形状。
```python
# 广播示例
arr1 = np.array([1, 2, 3])
arr2 = np.array([[4], [5], [6]])
print(arr1 + arr2) # 输出:[[5 6 7] [6 7 8] [7 8 9]]
# 形状转换示例
arr = np.array([1, 2, 3, 4, 5, 6])
print(arr.reshape((2, 3))) # 输出:[[1 2 3] [4 5 6]]
```
### 2.2 数据类型和类型转换
#### 2.2.1 常见的NumPy数据类型
NumPy提供了多种数据类型,包括:
- 整数类型:int8、int16、int32、int64
- 浮点数类型:float16、float32、float64
- 复数类型:complex64、complex128
- 布尔类型:bool
- 字符串类型:str
- 对象类型:object
#### 2.2.2 数据类型转换和类型检查
可以使用astype()方法转换数组的数据类型。可以使用dtype属性检查数组的数据类型。
```python
# 数据类型转换示例
arr = np.array([1, 2, 3], dtype=np.int32)
print(arr.astype(np.float32)) # 输出:[1. 2. 3.]
# 数据类型检查示例
print(arr.dtype) # 输出:int32
```
# 3.1 基本数学运算
NumPy库提供了丰富的数学运算函数,可以对数组中的元素进行各种数学运算,包括算术运算、比较运算和逻辑运算。
#### 3.1.1 算术运算
NumPy支持常见的算术运算,包括加法(+)、减法(-)、乘法(*)、除法(/)、取余(%)和幂运算(**)。这些运算符可以对数组中的元素逐个进行操作,也可以对数组和标量进行操作。
```python
import numpy as np
# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])
# 加法
print(arr + 2) # 输出:[3 4 5 6 7]
# 减法
print(arr - 1) # 输出:[0 1 2 3 4]
# 乘法
print(arr * 2) # 输出:[2 4 6 8 10]
# 除法
print(arr / 2) # 输出:[0.5 1. 1.5 2. 2.5]
#
```
0
0
复制全文
相关推荐







