Python 的数组数据结构
Python 中的数组可以使用列表(List)或 NumPy 数组来实现。
列表(List)实现数组
Python 中的 List 是一种有序的可变序列,支持任意类型的数据,包括数字、字符串、布尔值、对象等等。List 可以通过下标访问元素,也可以通过切片访问某一范围内的元素,并且支持添加、删除、修改等操作。
创建 List
可以通过以下方式来创建 List:
# 空列表
my_list = []
# 初始化列表
my_list = [1, 2, 3, 4]
# 列表嵌套
my_list = [[1, 2], [3, 4], [5, 6]]
访问元素
可以通过下标访问 List 中的元素,下标从 0 开始,例如:
my_list = [1, 2, 3, 4]
print(my_list[0]) # 输出 1
print(my_list[1]) # 输出 2
也可以使用负数下标访问 List 中的元素,例如:
my_list = [1, 2, 3, 4]
print(my_list[-1]) # 输出 4
print(my_list[-2]) # 输出 3
我们也可以使用切片来获取一个 List 中的一部分元素,例如:
my_list = [1, 2, 3, 4]
print(my_list[1:3]) # 输出 [2, 3]
修改元素
List 中的元素是可变的,可以通过下标修改元素的值,例如:
my_list = [1, 2, 3, 4]
my_list[0] = 5
print(my_list) # 输出 [5, 2, 3, 4]
添加元素
List 中可以使用 append()、insert() 和 extend() 方法来添加元素。其中,append() 方法用于在 List 的末尾添加一个元素,insert() 方法用于在 List 的指定位置插入一个元素,extend() 方法用于将一个 List 中的元素添加到另一个 List 中。
my_list = [1, 2, 3, 4]
my_list.append(5)
print(my_list) # 输出 [1, 2, 3, 4, 5]
my_list.insert(0, 0)
print(my_list) # 输出 [0, 1, 2, 3, 4, 5]
my_list2 = [6, 7, 8]
my_list.extend(my_list2)
print(my_list) # 输出 [0, 1, 2, 3, 4, 5, 6, 7, 8]
删除元素
List 中可以使用 remove()、pop() 和 del 语句删除元素。其中,remove() 方法用于删除 List 中的指定元素,pop() 方法用于删除 List 中的指定位置的元素,并返回被删除的元素值,del 语句用于删除 List 中的指定位置的元素。
my_list = [1, 2, 3, 4]
my_list.remove(2)
print(my_list) # 输出 [1, 3, 4]
my_list.pop(0)
print(my_list) # 输出 [3, 4]
del my_list[1]
print(my_list) # 输出 [3]
示例
以下示例演示了如何创建一个 List,并在其中添加、删除元素,并修改其中的元素值:
my_list = [1, 2, 3, 4]
# 添加元素
my_list.append(5)
my_list.insert(0, 0)
# 修改元素值
my_list[0] = -1
# 删除元素
my_list.remove(3)
print(my_list) # 输出 [-1, 1, 2, 4, 5]
NumPy 数组实现数组
NumPy(Numerical Python)是 Python 中用于科学计算的一个重要库,它提供了高效的多维数组对象,以及用于数组操作的各种函数。NumPy 中的数组对象是固定大小(大小不可变)且类型一致的,可以支持高效的向量化运算(即运算可以同时作用于整个数组上)。
安装 NumPy
NumPy 可以通过 pip 安装,命令如下:
pip install numpy
创建数组
可以通过以下方式来创建 NumPy 数组:
import numpy as np
# 从列表创建数组
my_array = np.array([1, 2, 3, 4])
# 从元组创建数组
my_array = np.array((1, 2, 3, 4))
# 创建指定大小的数组
my_array = np.zeros((3, 4)) # 创建一个 3 × 4 的全零数组
my_array = np.ones((3, 4)) # 创建一个 3 × 4 的全一数组
my_array = np.full((3, 4), 5) # 创建一个 3 × 4 的全为 5 的数组
my_array = np.arange(0, 10, 2) # 创建一个步长为 2 的等差数列数组 [0, 2, 4, 6, 8]
my_array = np.linspace(0, 1, 5) # 创建一个在 [0, 1] 区间内等分为 5 段的线性数组 [0. 0.25 0.5 0.75 1.]
my_array = np.random.randint(low=0, high=10, size=(3, 4)) # 创建一个 3 × 4 的随机整数数组,取值范围为 [0, 10)
访问元素
可以通过下标访问 NumPy 数组中的元素,下标从 0 开始,例如:
my_array = np.array([1, 2, 3, 4])
print(my_array[0]) # 输出 1
print(my_array[1]) # 输出 2
也可以使用负数下标访问 NumPy 数组中的元素,例如:
my_array = np.array([1, 2, 3, 4])
print(my_array[-1]) # 输出 4
print(my_array[-2]) # 输出 3
我们也可以使用切片来获取一个 NumPy 数组中的一部分元素,例如:
my_array = np.array([1, 2, 3, 4])
print(my_array[1:3]) # 输出 [2, 3]
修改元素
由于 NumPy 数组中的元素类型是固定的,因此只能修改元素的值,不能修改元素的类型,例如:
my_array = np.array([1, 2, 3, 4])
my_array[0] = 5
print(my_array) # 输出 [5 2 3 4]
示例
以下示例演示了如何创建一个 NumPy 数组,并访问其中的元素值:
import numpy as np
my_array = np.array([1, 2, 3, 4])
# 访问元素值
print(my_array[0])
print(my_array[-1])
print(my_array[1:3])
以上是 Python 中数组数据结构的使用方法攻略,希望对你有所帮助。