【基础】NumPy数组创建与基本操作
发布时间: 2024-06-26 16:17:53 阅读量: 75 订阅数: 109
![【基础】NumPy数组创建与基本操作](https://img-blog.csdnimg.cn/1934024a3045475e9a3b29546114c5bc.png)
# 1. NumPy数组基础**
NumPy(Numerical Python)是一个用于科学计算的Python库,其核心数据结构是多维数组。NumPy数组与标准Python列表不同,它们具有以下特点:
* **同质性:**数组中的所有元素必须具有相同的类型。
* **多维性:**数组可以具有多个维度,例如行和列。
* **高效性:**NumPy数组使用C语言实现,提供了高效的数值计算。
# 2. NumPy数组创建
NumPy数组是NumPy库中处理多维数据的主要数据结构。创建NumPy数组有两种主要方法:基本创建方法和高级创建方法。
### 2.1 基本创建方法
#### 2.1.1 从列表或元组创建
最简单的方法是从列表或元组创建NumPy数组。
```python
import numpy as np
# 从列表创建数组
list1 = [1, 2, 3, 4, 5]
array1 = np.array(list1)
# 从元组创建数组
tuple1 = (1, 2, 3, 4, 5)
array2 = np.array(tuple1)
print(array1)
print(array2)
```
输出:
```
[1 2 3 4 5]
[1 2 3 4 5]
```
#### 2.1.2 从标量创建
从标量创建NumPy数组会创建一个包含该标量重复值的数组。
```python
# 从标量创建数组
scalar = 10
array3 = np.array(scalar, ndmin=2)
print(array3)
```
输出:
```
[[10 10]]
```
`ndmin`参数指定创建的数组的最小维度。
#### 2.1.3 从范围创建
`np.arange()`函数可以从给定的范围创建NumPy数组。
```python
# 从范围创建数组
array4 = np.arange(1, 10, 2)
print(array4)
```
输出:
```
[1 3 5 7 9]
```
`arange()`函数的语法为:`np.arange(start, stop, step)`,其中`start`是起始值,`stop`是结束值(不包括在内),`step`是步长。
### 2.2 高级创建方法
#### 2.2.1 使用NumPy函数创建
NumPy提供了多种函数来创建具有特定形状和内容的数组。
```python
# 使用np.zeros()创建全零数组
array5 = np.zeros((3, 4))
# 使用np.ones()创建全一数组
array6 = np.ones((3, 4))
# 使用np.empty()创建未初始化数组
array7 = np.empty((3, 4))
print(array5)
print(array6)
print(array7)
```
输出:
```
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
```
#### 2.2.2 从文件读取
NumPy可以从文本文件或二进制文件读取数组。
```python
# 从文本文件读取数组
data = np.loadtxt('data.txt', delimiter=',')
# 从二进制文件读取数组
data = np.load('data.npy')
```
`np.loadtxt()`函数用于从文本文件读取数据,`delimiter`参数指定分隔符。`np.load()`函数用于从二进制文件读取数据。
# 3. NumPy数组基本操作
### 3.1 索引和切片
#### 3.1.1 基本索引
NumPy数组支持使用整数索引和切片来访问元素。整数索引用于访问单个元素,而切片用于访问元素的子集。
**整数索引**
```python
import numpy as np
# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])
# 访问第一个元素
print(arr[0]) # 输出:1
# 访问最后一个元素
print(arr[-1]) # 输出:5
```
**切片**
切片使用冒号 (:) 分隔符指定起始索引和结束索引。起始索引表示要包含的第一个元素,结束索引表示要包含的最后一个元素(不包括)。
```python
# 从索引 1 到 3(不包括 3)获取元素
print(arr[1:3]) # 输出:[2 3]
# 从索引 0 到末尾获取元素
print(arr[:]) # 输出:[1 2 3 4 5]
# 从索引 2 到末尾,步长为 2 获取元素
print(arr[2::2]) #
```
0
0