【基础】Numpy数组的创建与基本操作
发布时间: 2024-06-27 19:24:24 阅读量: 65 订阅数: 113
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
![【基础】Numpy数组的创建与基本操作](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4f929d181ea74049a388a99ea7ee3b2a~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp)
# 2.1 从现有数据创建数组
### 2.1.1 使用列表或元组
Numpy 数组可以从现有列表或元组中创建。列表或元组中的元素将成为数组中的元素。
```python
# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])
# 创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
```
# 2. Numpy数组的创建
### 2.1 从现有数据创建数组
#### 2.1.1 使用列表或元组
Numpy数组可以从现有列表或元组中创建,方法是使用`np.array()`函数。该函数将列表或元组中的元素转换为Numpy数组。
```python
# 从列表创建数组
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
print(my_array) # 输出:[1 2 3 4 5]
# 从元组创建数组
my_tuple = (1, 2, 3, 4, 5)
my_array = np.array(my_tuple)
print(my_array) # 输出:[1 2 3 4 5]
```
#### 2.1.2 使用arange()和linspace()函数
`arange()`函数生成一个指定范围内的均匀间隔的数字序列,`linspace()`函数生成一个指定范围内的均匀间隔的数字序列,包括端点。
```python
# 使用arange()创建数组
my_array = np.arange(1, 10, 2) # 从1到9,步长为2
print(my_array) # 输出:[1 3 5 7 9]
# 使用linspace()创建数组
my_array = np.linspace(0, 1, 5) # 从0到1,包括端点,分成5个均匀间隔
print(my_array) # 输出:[0. 0.25 0.5 0.75 1. ]
```
### 2.2 从头开始创建数组
#### 2.2.1 使用zeros()、ones()和empty()函数
`zeros()`函数创建一个指定形状和数据类型的数组,其中所有元素都初始化为0。`ones()`函数创建一个指定形状和数据类型的数组,其中所有元素都初始化为1。`empty()`函数创建一个指定形状和数据类型的数组,其中所有元素都未初始化。
```python
# 使用zeros()创建数组
my_array = np.zeros((3, 4)) # 创建一个3行4列的数组,所有元素为0
print(my_array) # 输出:
# [[0. 0. 0. 0.]
# [0. 0. 0. 0.]
# [0. 0. 0. 0.]]
# 使用ones()创建数组
my_array = np.ones((3, 4)) # 创建一个3行4列的数组,所有元素为1
print(my_array) # 输出:
# [[1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]]
# 使用empty()创建数组
my_array = np.empty((3, 4)) # 创建一个3行4列的数组,所有元素未初始化
print(my_array) # 输出:
# [[1.2354321e-304 1.2354321e-304 1.2354321e-304 1.2354321e-304]
# [1.2354321e-304 1.2354321e-304 1.2354321e-304 1.2354321e-304]
# [1.2354321e-304 1.2354321e-304 1.2354321e-304 1.2354321e-304]]
```
#### 2.2.2 使用full()和eye()函数
`full()`函数创建一个指定形状和数据类型的数组,其中所有元素都初始化为指定的标量值。`eye()`函数创建一个指定大小的单位矩阵。
```python
# 使用full()创建数组
my_array = np.full((3, 4), 5) # 创建一个3行4列的数组,所有元素为5
print(my_array) # 输出:
# [[5. 5. 5. 5.]
# [5. 5. 5. 5.]
# [5. 5. 5. 5.]]
# 使用eye()创建数组
my_array = np.eye(3) # 创建一个3x3的单位矩阵
print(my_array) # 输出:
# [[1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]
```
# 3. Numpy数组的基本操作
### 3.1 数组的索引和切片
#### 3.1.1 一维数组的索引和切片
一维数组的索引和切片与Python列表类似。使用方括号([])进行索引,索引号从0开始。正数索引表示从数组开头向后取值,负数索引表示从数组末尾向前取值。
```python
import numpy as np
# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])
# 索引
print(arr[0]) # 输出:1
print(arr[-1]) # 输出:5
```
0
0