1. NumPy数组操作基础概念
第一次接触NumPy数组时,我被它强大的性能震撼到了。记得当时处理一个50万行的数据集,用纯Python列表需要近30秒的操作,换成NumPy数组后仅需0.3秒。这种百倍的速度提升让我彻底迷上了这个科学计算库。
NumPy的核心是ndarray(N维数组)对象,它不同于Python原生列表的关键在于:
- 固定类型:数组所有元素必须是同种数据类型
- 连续内存:数据在内存中连续存储,减少寻址开销
- 向量化操作:避免显式循环,底层用C实现高效运算
创建数组最直接的方式是np.array():
python复制import numpy as np
arr = np.array([1, 2, 3]) # 一维数组
matrix = np.array([[1,2], [3,4]]) # 二维数组
注意:np.array()默认会尝试推断合适的数据类型,若需要指定类型可使用dtype参数,如
np.array([1,2], dtype=np.float32)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数组创建与初始化方法大全
2.1 特殊数组生成
实际项目中,我们经常需要快速生成特定模式的数组:
python复制np.zeros((3,3)) # 3x3全0矩阵
np.ones((2,4)) # 2行4列全1数组
np.full((3,3), 5) # 3x3全5矩阵
np.eye(4) # 4x4单位矩阵
np.empty((2,2)) # 未初始化的2x2数组(内容随机)
2.2 序列数组生成
数据预处理时,规律序列特别有用:
python复制np.arange(0, 10, 2) # [0,2,4,6,8](类似range但返回数组)
np.linspace(0, 1, 5) # [0., 0.25, 0.5, 0.75, 1.](等分区间)
np.logspace(1,3,3) # [10, 100, 1000](对数刻度)
2.3 随机数组生成
机器学习中经常需要随机数据:
python复制np.random.rand(3,2) # 3x2的[0,1)均匀分布
np.random.randn(2,2) # 2x2标准正态分布
