数组简介

在Python中,数组是一种基本的数据结构,用于存储一系列有序的数据项。Python的数组可以通过内置的列表来实现,但为了更高效地处理大型数据集和执行复杂的数算,通常会使用NumPy库。NumPy提供了强大的数组操作功能,包括创建、索引、切片、赋值等。

创建数组

列表创建

# 使用列表创建数组
a = [1, 2, 3, 4, 5]

NumPy创建

import numpy as np

# 从列表创建一维数组
b = np.array([1, 2, 3, 4, 5])

# 创建数组
c = np.array([[1, 2], [3, 4]])

数组属性

维度(ndim)

# 获取数组的维度
print(b.ndim)  # 输出:1
print(c.ndim)  # 输出:2

形状(shape)

# 获取数组的形状
print(b.shape)  # 输出:(5,)
print(c.shape)  # 输出:(2, 2)

元素个数(size)

# 获取数组的元素个数
print(b.size)  # 输出:5
print(c.size)  # 输出:4

数据类型(dtype)

# 获取数组的数据类型
print(b.dtype)  # 输出:int
print(c.dtype)  # 输出:int

数组索引与切片

一维数组索引

# 通过正数索引获取值
print(b[0])  # 输出:1

# 通过负数索引获取值
print(b[-1])  # 输出:5

二维数组索引

# 通过正数索引获取值
print(c[0, 0])  # 输出:1

# 通过负数索引获取值
print(c[1, 1])  # 输出:4

数组切片

# 切片[开始:结束:步长]
print(c[0, :])  # 输出:[1 2]
print(c[:, 1])  # 输出:[2 4]

数组赋值

直接赋值

# 直接赋值
a[0] = 0
print(a)  # 输出:[0, 2, 3, 4, 5]

扩展赋值

# 扩展赋值
a.extend([6, 7, 8])
print(a)  # 输出:[0, 2, 3, 4, 5, 6, 7, 8]

数组操作

数组运算

# 数组的算术运算
print(a + b)  # 输出:[2, 4, 6, 8, 10]

数组与标量的运算

# 数组与标量的运算
print(a * 2)  # 输出:[0, 4, 6, 8, 10]

广播机制

# 广播机制
print(a * c)  # 输出:[[ 0  2]
              #          [ 6  8]]

总结

通过本文,我们学习了Python数组的创建、属性、索引、切片、赋值以及操作技巧。掌握这些基础技能后,你可以更高效地处理数据,并在Python编程中发挥数组的强大功能。