📜  Python中的数组|第一组(介绍及功能)(1)

📅  最后修改于: 2023-12-03 15:19:30.123000             🧑  作者: Mango

Python中的数组|第一组(介绍及功能)

1. 什么是数组?

数组(Array)是计算机科学中的一种数据结构,它是由相同类型的元素组成的集合,这些元素在内存中顺序存储。在Python中,我们可以使用List或者Numpy中的ndarray作为数组数据结构。

2. List数组

List是Python内置的数据类型,它可以表示一个有序集合。List可以储存任意类型的Python对象,包括其他List。List的下标从0开始,所以第一个元素的下标为0.

创建List

可以通过以下方式创建一个List

# 创建一个空的list
a = []

# 创建有值的list
b = [1, 2, 3]

# 创建多重嵌套的list
c = [[1, 2, 3], ['a', 'b', 'c'], [True, False]]
访问List元素

可以通过下标来访问List中的元素

a = [1, 2, 3, 4, 5]
print(a[0])
# 输出结果:1

print(a[2])
# 输出结果:3
修改List元素

可以通过下标来修改List中的元素

a = [1, 2, 3, 4, 5]
a[2] = 10
print(a)
# 输出结果:[1, 2, 10, 4, 5]
删除List元素

可以使用del语句删除List中的元素

a = [1, 2, 3, 4, 5]
del a[2]
print(a)
# 输出结果:[1, 2, 4, 5]
List操作符

在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]
List内置方法

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]
3. Numpy数组

Numpy是Python中一个非常流行的数值计算库,它提供了一个高效的多维数组对象ndarray。Numpy中的ndarray比Python中的List更加高效,因此在涉及大量数据处理的时候,推荐使用Numpy数组。

创建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数组元素

可以通过下标来访问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数组元素

可以通过下标来修改Numpy数组中的元素

a = np.array([1, 2, 3, 4, 5])
a[2] = 10
print(a)
# 输出结果:[1 2 10 4 5]
删除Numpy数组元素

Numpy数组中没有提供直接删除元素的方法,如果需要删除元素,可以使用np.delete方法

a = np.array([1, 2, 3, 4, 5])
a = np.delete(a, [2])
print(a)
# 输出结果:[1 2 4 5]
Numpy数组内置方法

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
4. 总结

Python中的数组分为List和Numpy数组两种,适用于不同的需求。List比较灵活,支持任意类型的数据,但在处理大量数据的时候速度会比较慢;而Numpy数组比较高效,可以支持多维数组计算,但需要使用特定数据类型的数据。在实际开发中,可以根据具体需求选择合适的数组类型。