📅  最后修改于: 2023-12-03 15:19:30.123000             🧑  作者: Mango
数组(Array)是计算机科学中的一种数据结构,它是由相同类型的元素组成的集合,这些元素在内存中顺序存储。在Python中,我们可以使用List或者Numpy中的ndarray作为数组数据结构。
List是Python内置的数据类型,它可以表示一个有序集合。List可以储存任意类型的Python对象,包括其他List。List的下标从0开始,所以第一个元素的下标为0.
可以通过以下方式创建一个List
# 创建一个空的list
a = []
# 创建有值的list
b = [1, 2, 3]
# 创建多重嵌套的list
c = [[1, 2, 3], ['a', 'b', 'c'], [True, False]]
可以通过下标来访问List中的元素
a = [1, 2, 3, 4, 5]
print(a[0])
# 输出结果:1
print(a[2])
# 输出结果:3
可以通过下标来修改List中的元素
a = [1, 2, 3, 4, 5]
a[2] = 10
print(a)
# 输出结果:[1, 2, 10, 4, 5]
可以使用del语句删除List中的元素
a = [1, 2, 3, 4, 5]
del a[2]
print(a)
# 输出结果:[1, 2, 4, 5]
在List中,支持一些常规的操作符
a = [1, 2, 3]
b = [4, 5, 6]
# 连接List
c = a + b
print(c)
# 输出结果:[1, 2, 3, 4, 5, 6]
# 重复List
d = a * 3
print(d)
# 输出结果:[1, 2, 3, 1, 2, 3, 1, 2, 3]
Python中的List还提供了一些内置方法,可以方便地操作List
a = [1, 2, 3, 4, 5]
# 获取List长度
print(len(a))
# 输出结果:5
# 在指定位置插入元素
a.insert(2, 10)
print(a)
# 输出结果:[1, 2, 10, 3, 4, 5]
# 移除指定元素
a.remove(3)
print(a)
# 输出结果:[1, 2, 10, 4, 5]
# 获取指定元素的下标
print(a.index(10))
# 输出结果:2
# 统计某个元素在List中出现的次数
print(a.count(4))
# 输出结果:1
# 翻转List
a.reverse()
print(a)
# 输出结果:[5, 4, 10, 2, 1]
# 冒泡排序
a.sort()
print(a)
# 输出结果:[1, 2, 4, 5, 10]
Numpy是Python中一个非常流行的数值计算库,它提供了一个高效的多维数组对象ndarray。Numpy中的ndarray比Python中的List更加高效,因此在涉及大量数据处理的时候,推荐使用Numpy数组。
可以通过以下方式创建一个Numpy数组
import numpy as np
# 创建一个空的ndarray
a = np.array([])
# 创建有值的ndarray
b = np.array([1, 2, 3])
# 创建多重嵌套的ndarray
c = np.array([[1, 2, 3], ['a', 'b', 'c'], [True, False]])
# 创建指定形状的ndarray
d = np.zeros((3, 4))
e = np.ones((2, 3, 2))
# 从Python中的List转换
f = np.array([1, 2, 3, 4])
可以通过下标来访问Numpy数组中的元素
a = np.array([1, 2, 3, 4, 5])
print(a[0])
# 输出结果:1
print(a[2])
# 输出结果:3
与List不同的是,Numpy数组还支持多维下标来访问元素
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a[0, 0])
# 输出结果:1
print(a[1, 1])
# 输出结果:5
print(a[2, 0])
# 输出结果:7
可以通过下标来修改Numpy数组中的元素
a = np.array([1, 2, 3, 4, 5])
a[2] = 10
print(a)
# 输出结果:[1 2 10 4 5]
Numpy数组中没有提供直接删除元素的方法,如果需要删除元素,可以使用np.delete方法
a = np.array([1, 2, 3, 4, 5])
a = np.delete(a, [2])
print(a)
# 输出结果:[1 2 4 5]
Numpy中的ndarray也提供了很多内置方法,可以方便地操作数组
a = np.array([1, 2, 3, 4, 5])
# 获取数组形状
print(a.shape)
# 输出结果:(5,)
# 改变数组形状
a = a.reshape((5, 1))
print(a)
# 输出结果:
# [[1]
# [2]
# [3]
# [4]
# [5]]
# 获取数组长度
print(len(a))
# 输出结果:5
# 获取数组维度数量
print(a.ndim)
# 输出结果:2
# 获取数组每个元素的字节大小
print(a.itemsize)
# 输出结果:4
# 获取数组数据类型
print(a.dtype)
# 输出结果:int32
# 获取数组中的最小值和最大值
print(a.min())
# 输出结果:1
print(a.max())
# 输出结果:5
# 获取数组中的和、平均值、方差和标准差
print(a.sum())
# 输出结果:15
print(a.mean())
# 输出结果:3.0
print(a.var())
# 输出结果:2.0
print(a.std())
# 输出结果:1.41421356
Python中的数组分为List和Numpy数组两种,适用于不同的需求。List比较灵活,支持任意类型的数据,但在处理大量数据的时候速度会比较慢;而Numpy数组比较高效,可以支持多维数组计算,但需要使用特定数据类型的数据。在实际开发中,可以根据具体需求选择合适的数组类型。