21.1 NumPy数组(ndarray)的创建与属性
NumPy数组(ndarray)的创建与属性:Python科学计算入门教程
本教程详细讲解NumPy数组(ndarray)的创建方法和核心属性,包括简单示例和解释,适合Python初学者快速掌握科学计算基础。
推荐工具
NumPy数组(ndarray)的创建与属性
什么是NumPy和ndarray?
NumPy(Numerical Python)是Python中用于科学计算的核心库。它提供了高性能的多维数组对象,称为ndarray,以及处理这些数组的工具。ndarray是NumPy的基础,让数值计算变得高效简单。
创建NumPy数组
有多种方法可以创建NumPy数组,适合不同场景。以下是常见方法,每个都附带简单示例。
1. 使用numpy.array()函数
这是最直接的方法,可以将Python列表或元组转换为NumPy数组。
import numpy as np # 导入NumPy库
# 创建一个一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print("一维数组:", arr1)
# 创建一个二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print("二维数组:", arr2)
2. 使用其他内置创建函数
NumPy提供了特殊函数来快速创建常用数组,非常适合初始化数据。
# 创建全零数组
zeros_arr = np.zeros((2, 3)) # 2行3列的全零数组
print("全零数组:\n", zeros_arr)
# 创建全一数组
ones_arr = np.ones((3, 4)) # 3行4列的全一数组
print("全一数组:\n", ones_arr)
# 创建序列数组
seq_arr = np.arange(0, 10, 2) # 从0到10,步长为2
print("序列数组:", seq_arr)
# 创建等间隔数组
lin_arr = np.linspace(0, 1, 5) # 0到1之间5个等分点
print("等间隔数组:", lin_arr)
# 创建单位矩阵
eye_arr = np.eye(3) # 3x3单位矩阵
print("单位矩阵:\n", eye_arr)
# 创建随机数组
rand_arr = np.random.rand(2, 2) # 2x2的随机数数组,值在0到1之间
print("随机数组:\n", rand_arr)
NumPy数组的属性
创建数组后,了解其属性可以帮助你更好地管理和操作数据。以下是核心属性,每个都附有解释和示例。
常用属性
# 示例数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
# shape:表示数组的形状(维度大小)
print("Shape(形状):", arr.shape) # 输出: (2, 3),表示2行3列
# dtype:表示数组元素的数据类型
print("Data type(数据类型):", arr.dtype) # 输出: int64(默认整数类型)
# size:数组中元素的总数
print("Size(元素总数):", arr.size) # 输出: 6,因为2*3=6个元素
# ndim:数组的维数
print("Number of dimensions(维数):", arr.ndim) # 输出: 2,因为它是二维数组
# itemsize:每个元素占用的字节数
print("Item size(元素字节大小):", arr.itemsize) # 输出: 8(对于int64,每个元素8字节)
# nbytes:数组总字节数
print("Total bytes(总字节数):", arr.nbytes) # 输出: 48,因为6个元素 * 8字节 = 48字节
其他属性
# T:转置数组(交换行和列)
transposed_arr = arr.T
print("Transposed array(转置数组):\n", transposed_arr)
# 对于复数数组:real和imag属性
complex_arr = np.array([1+2j, 3+4j]) # 创建复数数组
print("Real part(实部):", complex_arr.real) # 输出: [1. 3.]
print("Imaginary part(虚部):", complex_arr.imag) # 输出: [2. 4.]
总结
通过本教程,你应该掌握了NumPy数组(ndarray)的基本创建方法和核心属性。这是学习Python科学计算的第一步,后续可以探索更多数组操作和数学函数。练习这些示例,逐步提升技能!
如果需要进一步学习,建议查阅NumPy官方文档或尝试实际数据分析项目。
开发工具推荐