Python list与NumPy array 区分详解

  • Post category:Python

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的基本操作

  1. 访问List元素

使用下标来访问List中的元素,下标从0开始。例如,要访问上面示例中的第一个元素,可以使用以下代码:

print(my_list[0])    # 输出:1
  1. List元素

可以使用下标来修改List中的元素。例如,要将上面示例中的第一个元素修改为10,可以使用以下:

my_list[0] = 10
print(my_list)    # 输出:[10, 2, 3, 'hello', 'world']
  1. List切片可以使用切片来获取List的子集。切片使用[start:end]的形式表示,其中start表示起始下标,end表示结束下标(不包含)。例如,要获取上面示例中的前三个元素,可以使用以下代码:
print(my_list[0:3])    # 输出:[10, 2, 3]
  1. 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]
  1. 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']
  1. List长度

可以使用len()函数来获取List的长度。例如,要获取上面示例中的List的长度,可以使用以下代码:

print(len(my_list))    # 输出:5

List的高级操作

  1. 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]
  1. List反转

可以使用reverse()方法将List中的元素反转。例如,要将上面示例中的List反转,可以使用以下代码:

my_list.reverse()
print(my_list)    # 输出:[5, 3, 5, 6, 2, 9, 5, 4, 1, 4, 3]
  1. List删除元素

可以使用del语句或remove()方法来删除List中的元素。例如,要删除上面示例中的第一个元素,可以使用以下代码:

del my_list[0]
print(my_list)    # 输出:[3, 5, 6, 2, 9, 5, 4, 1, 4, 3]
  1. 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的基本操作

  1. 访问NumPy Array元素

使用下标来访问NumPy Array中的元素,下标从0开始。例如,要访问上面示例中的第一个元素,可以使用以下代码:

print(my_array[0])    # 输出:1
  1. NumPy Array元素

可以使用下标来修改NumPy Array中的元素。例如,要将上面示例中的第一个元素修改为10,可以使用以下:

my_array[0] = 10
print(my_array)    # 输出:[10, 2, 3, 4, 5]
  1. NumPy Array切片可以使用切片来获取NumPy Array的子集。切片使用[start:end]的形式表示,其中start表示起始下标,end表示结束下标(不包含)。例如,要获取上面示例中的前三个元素,可以使用以下代码:
print(my_array[0:3])    # 输出:[10, 2, 3]
  1. 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]
  1. 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]
  1. NumPy Array长度

可以使用shape属性来获取NumPy Array的长度。例如,要获取上面示例中的NumPy Array的长度,可以使用以下代码:

print(my_array.shape)    # 输出:(5,)

NumPy Array的高级操作

  1. 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]
  1. 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的高级操作,包括数学运算和矩阵运算。