Python数据分析系列教程
1. NumPy基础教程+面试题串讲(本篇)
2. Pandas基础教程+面试题串讲
3. Matplotlib+seaborn可视化教程
4. 能力打通:iris数据可视化分析
课程代码(教学级)和数据集已整理到网盘,内容更全面,
关注『AI Power Lab』,对话框输入“numpy”免费获取~
01
为什么是Numpy
pip install numpy #不指定版本号,默认安装最新版pip install numpy==<版本号> #指定版本号
import numpy as np
02
Numpy的几个必备基础操作
value = [1, 2, 3]arr1d = np.array(value)print(arr1d)# 输出[1 2 3]
value2 = [["name", "gender", "age"], ["Tom", "Male", "18"]]arr2d = np.array(value2)print(arr2d.ndim)print(arr2d.shape)# 输出2(2, 3)
np.zeros((3,5)) #生成3行5列的全0数组np.ones(5) #生成维度为[1,5]的全1数组np.empty(5) #生成维度为[1,5]的未初始化数组np.arange(3,10,3) #生成的3开始10结束步长为3的等差数列np.random.randint(1,30,size=(3,5)) #生成3行5列的在[1,30]之间的随机整数数组
arr = np.arange(10)# 输出[0 1 2 3 4 5 6 7 8 9]# 单个索引arr[3] # 输出 3# 切片arr[3:7] # 输出 [3 4 5 6]
# 生成矩阵mat = np.arange(1,17)mat.shape = (4,4)# 输出[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12] [13 14 15 16]]# 获取某一行mat[0]# 获取多行mat[1:3]# 获取单个元素mat[1,3]# 输出8
# 获取第0到第2行的第1列mat[0:3,1]# 获取第2行到行末尾,以及第2列到列末尾mat[2:,2:]
wine_data = np.genfromtxt(r'/<数据路径>/winequality-red.csv', delimiter=';', skip_header=1)
wine = wine_data[:10,[8,10,11]]
wine[wine[:,2] > 5]
wine[(wine[:,2] > 5) & (wine[:,1] >= 10)]
mat / 2(mat + 100) / 100
arr7 = [1,2,5]arr7 * 2# [元素分别乘2]# 输出[2,4,10]
list = [1,2,5]list * 2# 输出[1,2,5],[1,2,5]
arr8 + arr8np.add(arr8, arr8)
wine - wine[0] # 每一行都减去第一行
np.sum(wine)np.sum(wine, axis=0)
np.mean(wine, axis=0)
np.max(wine, axis=0)np.min(wine, axis=0)
np.sort(wine[:,0])
np.unique(wine[:,2])
np.where(wine[:,2] > 5, 'Good', 'Bad')
03
实操:学生成绩分析
names = np.array([...])scores = np.array([...])
names[scores < 60]
np.max(scores)np.min(scores)np.mean(scores)np.var(scores)np.std(scores)
np.where(scores >= 90, 'A', np.where(scores >= 70, 'B', 'C'))
已经读到这里啦,来个点赞、喜欢和关注吧~
期待你在评论区分享想法和见解,也欢迎交个朋友。
想要第一时间收到推送,可以给我一个星标⭐哦!
你们的支持和鼓励,是我持续更新的最大动力 ❥(^_-)
04
高频面试题串讲
import numpy as npA = np.array([ [1, 2, 3], [4, 5, 6]]) # shape (2, 3)B = np.array([10, 20, 30]) # shape (3,)A + B# 第一步:对齐维度A: (2, 3)B: (1, 3)# 第二步:广播扩展B → (2, 3)[[10, 20, 30], [10, 20, 30]]# 第三步:逐元素计算[[11, 22, 33], [14, 25, 36]]
b = a[1:3] # viewc = a[1:3].copy() # copy
往期推荐
智能体搭建| 如何用OpenClaw搭建你的“一人公司”(附完整配置模板)
我用Andrej Karpathy的LLM wiki思路实现了“活”的个人知识库(附模板)
你一定用得上的智能体skills推荐,主流技能市场盘点
OpenClaw进化| Obsidian+Ollama,用RAG打造真正懂你的小龙虾
新手养虾也能如此简单!OpenClaw+飞书快速上手指南