Python科学计算基石:Numpy基础知识

本文基于Numpy思维导图整理核心知识点,适合快速入门和知识体系梳理。

一、引言 

Numpy作为Python科学计算的核心库,凭借高性能多维数组对象(ndarray)和高效计算能力,成为数据分析、机器学习等领域的必备工具。本文将从基本操作与运算两大维度,系统性梳理Numpy的核心功能,助你快速掌握其精髓。

二、Numpy基本操作 

1. ndarray数组的创建 

生成0/1数组:np.zeros(shape), np.ones(shape)

np.zeros(shape=(2,3),dtype=int)

np.ones(shape=(3,4),dtype=np.int32)

从现有数据生成:np.array(), np.copy(), np.asarray()

score=np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20]])

data1 =np.array(score)

# np.asarray()浅拷贝

data2=np.asarray(score)

#np.copy深拷贝

data3=np.copy(score)

生成特定范围数组: 

  等差数列:np.linspace(start, stop, num) 

  固定步长:np.arange(start, stop, step) 

python

import numpy as np

arr = np.zeros((3,3))  # 3x3全0数组

arr_lin = np.linspace(0, 10, 5)  # [0., 2.5, 5., 7.5, 10.]

2. ndarray属性与方法 

核心属性: 

.shape:数组形状(如(2,3)) 

.dtype:数据类型(如int32, float64) 

形状修改: 

reshape(new_shape):不改变数据调整形状 

.T:转置数组 

resize():直接修改原数组形状 

3. 切片与索引 

基础切片:arr[start:end:step]

布尔索引:通过条件筛选数据,如arr[arr > 5]

4. 类型转换与序列化

修改数据类型:astype(new_type) 

序列化存储:tostring() 

5. 随机数生成

均匀分布:np.random.uniform(low, high, size) 

正态分布:np.random.normal(loc, scale, size) 

6. 数据去重

唯一值提取:np.unique(arr) 

三、Numpy运算 

1. 逻辑运算与布尔索引

逻辑判断:np.all(), np.any()

三元运算符:np.where(condition, x, y) 

python

cond = np.array([True, False, True])

result = np.where(cond, 1, -1)  # [1, -1, 1]

2. 统计运算 

常用函数:min(), max(), mean()(均值), median()(中位数), var()(方差), std()(标准差) 

沿轴计算:np.max(arr, axis=0)(按列求最大值) 

3. 数据与数组运算

广播机制(Broadcasting):允许不同形状数组逐元素运算(如标量与数组相加)。 

规则:从后向前逐维对齐,缺失维度视为1,维度为1时可扩展。 

4. 矩阵运算

点乘(内积):np.dot(a, b)或 a @ b

矩阵相乘规则:形状需满足 (m,n) × (n,p) = (m,p) 

python

a = np.array([[1,2], [3,4]])

b = np.array([[5,6], [7,8]])

print(a @ b)  # [[19 22], [43 50]]

四、总结 

Numpy的核心优势在于**高效的多维数据操作**和**丰富的数学运算支持**。通过掌握数组创建、形状操作、统计计算和广播机制,读者可快速构建数据处理流程。后续可结合Pandas、Scipy等库深入实践,解锁更复杂的科学计算场景。


欢迎在评论区分享你的学习心得或疑问,文章如有错误可在评论区留言。


1

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容