Python List 与 NumPy Array 区分详解
Python中的List和NumPy中的Array都是常用的数据结构,但是它们之间有很多区别。本文将详细讲解Python List和NumPy Array的区别。
Python List
Python List是Python中最常用的数据结构之一,它可以存储任意数量的任意类型的数据。List使用方括号[]来表示,其中的元素逗号分隔。下面是一个简单的List示例:
my_list = [1, 2, 3, 'hello', 'world']
List的基本操作
- 访问List元素
使用下标来访问List中的元素,下标从0开始。例如,要访问上面示例中的第一个元素,可以使用以下代码:
print(my_list[0]) # 输出:1
- List元素
可以使用下标来修改List中的元素。例如,要将上面示例中的第一个元素修改为10,可以使用以下:
my_list[0] = 10
print(my_list) # 输出:[10, 2, 3, 'hello', 'world']
- List切片可以使用切片来获取List的子集。切片使用[start:end]的形式表示,其中start表示起始下标,end表示结束下标(不包含)。例如,要获取上面示例中的前三个元素,可以使用以下代码:
print(my_list[0:3]) # 输出:[10, 2, 3]
- List拼接
可以使用加号+来将两个List拼接成一个新的List。例如,要将上面示例中的List和另一个List[4, 5, 6]拼接起来,可以使用以下代码:
new_list = my_list + [4, 5, 6]
print(new_list) # 输出:[10, 2, 3, 'hello', 'world', 4, 5,6]
- List重复
可以使用乘号*来将一个List重复多次。例如,要将上面示例中的List重复3次,可以使用以下代码:
new_list = my_list * 3
print(new_list) # 输出:[10, 2, 3, 'hello', 'world', 10, 2, 3, 'hello', 'world', 10, 2, 3, 'hello', 'world']
- List长度
可以使用len()函数来获取List的长度。例如,要获取上面示例中的List的长度,可以使用以下代码:
print(len(my_list)) # 输出:5
List的高级操作
- List排序
可以使用sort()方法对List进行排序。例如,要对一个包含数字的List进行排序,可以使用以下代码:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list) # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
- List反转
可以使用reverse()方法将List中的元素反转。例如,要将上面示例中的List反转,可以使用以下代码:
my_list.reverse()
print(my_list) # 输出:[5, 3, 5, 6, 2, 9, 5, 4, 1, 4, 3]
- List删除元素
可以使用del语句或remove()方法来删除List中的元素。例如,要删除上面示例中的第一个元素,可以使用以下代码:
del my_list[0]
print(my_list) # 输出:[3, 5, 6, 2, 9, 5, 4, 1, 4, 3]
- List插入元素
可以使用insert()方法在List中插入元素。例如,要在上面示例中的第一个位置插入一个元素10,可以使用以下代码:
my_list.insert(0, 10)
print(my_list) # 输出:[10, 3, 5, 6, 2, 9, 5, 4, 1, 4, 3]
NumPy Array
NumPy是Python中的一个科学计算库,它提供了一个高性能的多维数组对象,称为NumPy Array。NumPy Array是一个由相同类型的元素组成的多维数组,可以进行高效的数学运算。下面是一个简单的NumPy Array示例:
import numpy as np
my_array = np.array([1, 2, 3, 4, 5])
NumPy Array的基本操作
- 访问NumPy Array元素
使用下标来访问NumPy Array中的元素,下标从0开始。例如,要访问上面示例中的第一个元素,可以使用以下代码:
print(my_array[0]) # 输出:1
- NumPy Array元素
可以使用下标来修改NumPy Array中的元素。例如,要将上面示例中的第一个元素修改为10,可以使用以下:
my_array[0] = 10
print(my_array) # 输出:[10, 2, 3, 4, 5]
- NumPy Array切片可以使用切片来获取NumPy Array的子集。切片使用[start:end]的形式表示,其中start表示起始下标,end表示结束下标(不包含)。例如,要获取上面示例中的前三个元素,可以使用以下代码:
print(my_array[0:3]) # 输出:[10, 2, 3]
- NumPy Array拼接
可以使用concatenate()函数将两个NumPy Array拼接成一个新的NumPy Array。例如,要将上面示例中的NumPy Array和另一个NumPy Array[4, 5, 6]拼接起来,可以使用以下代码:
new_array = np.concatenate((my_array, [4, 5, 6]))
print(new_array) # 输出:[10, 2, 3, 4, 5, 4, 5, 6]
- NumPy Array重复
可以使用repeat()函数将一个NumPy Array重复多次。例如,要将上面示例中的NumPy Array重复3次,可以使用以下代码:
new_array = np.repeat(my_array, 3)
print(new_array) # 输出:[10, 10, 10, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5]
- NumPy Array长度
可以使用shape属性来获取NumPy Array的长度。例如,要获取上面示例中的NumPy Array的长度,可以使用以下代码:
print(my_array.shape) # 输出:(5,)
NumPy Array的高级操作
- NumPy Array的数学运算
NumPy Array可以进行高效的数学运算,例如加、减、乘、除等。例如,要将一个包含数字的NumPy Array加上一个标量2,可以使用以下代码:
my_array = np.array([1, 2, 3, 4, 5])
new_array = my_array + 2
print(new_array) # 输出:[3, 4, 5, 6, 7]
- NumPy Array的矩阵运算
NumPy Array还可以进行矩阵运算,例如矩阵乘法、矩阵转置等。例如,要计算两个矩阵的乘积,可以使用以下代码:
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = np.dot(a, b)
print(c) # 输出:[[19, 22], [43, 50]]
示例说明
下面是一个示例,演示如何使用List和NumPy Array:
import numpy as np
# 定义一个List
my_list = [1, 2, 3, 4, 5]
# 定义一个NumPy Array
my_array = np.array([1, 2, 3, 4, 5])
# 访问List和NumPy Array中的元素
print(my_list[0]) # 输出:1
print(my_array[0]) # 输出:1
# List和NumPy Array切片
print(my_list[0:3]) # 输出:[1, 2, 3]
print(my_array[0:3]) # 输出:[1, 2, 3]
# List和NumPy Array拼接
new_list = my_list + [6, 7, 8]
new_array = np.concatenate((my_array, [6, 7, 8]))
print(new_list) # 输出:[1, 2, 3, 4, 5, 6, 7, 8]
print(new_array) # 输出:[1, 2, 3, 4, 5, 6, 7, 8]
# List和NumPy Array重复
new_list = my_list * 3
new_array = np.repeat(my_array, 3)
print(new_list) # 输出:[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
print(new_array) # 输出:[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5]
# List和NumPy Array长度
print(len(my_list)) # 输出:5
print(my_array.shape) # 输出:(5,)
在这个示例中,我们首先定义了一个List my_list和一个NumPy Array my_array。然后演示了如何访问List和NumPy Array中的元素、如何使用切片获取子集、如何使用加号+拼接List和NumPy Array、如何使用concatenate()函数拼接NumPy Array、如何使用乘号*重复List和NumPy Array、以及如何使用len()函数获取List的长度和shape属性获取NumPy Array的长度。同时,还演示了NumPy Array的高级操作,包括数学运算和矩阵运算。