PyCharm 在手,NumPy 函数实操笔记:从字符串到统计分析,一篇搞懂

目录

[一、先从 "字符串" 下手:原来 NumPy 处理文本这么方便](#一、先从 "字符串" 下手:原来 NumPy 处理文本这么方便)

[二、数学运算:从三角函数到取整,PyCharm 里算得又快又准](#二、数学运算:从三角函数到取整,PyCharm 里算得又快又准)

[三、统计分析才是重头戏:这些函数能解决 80% 的数据分析问题](#三、统计分析才是重头戏:这些函数能解决 80% 的数据分析问题)

[四、踩过的坑:这些细节在 PyCharm 里试了才知道](#四、踩过的坑:这些细节在 PyCharm 里试了才知道)

五、学以致用:用今天学的函数解决课堂练习

[六、最后碎碎念:PyCharm 真的是学习利器](#六、最后碎碎念:PyCharm 真的是学习利器)


今天的数据分析课上,老师把 NumPy 的核心函数过了一遍,一开始看着满屏的函数名头都大了 ------ 又是字符串处理,又是数学运算,还有统计、排序... 不过拿着 PyCharm 一个个敲代码试下来,居然慢慢理清了头绪。这篇笔记就聊聊我今天学的重点,全是实操里总结的干货,新手友好,老手可查漏~

一、先从 "字符串" 下手:原来 NumPy 处理文本这么方便

刚开始以为 NumPy 只擅长算数字,没想到处理字符串也有一手。老师讲了一堆函数,我在 PyCharm 里试了几个最常用的,分享给你们:

比如np.char.add(),看起来简单,其实超实用 ------ 它能把两个字符串数组 "对应着拼接"。我试了句np.char.add(['hello', 'hi'], [' sun', ' zhang']),直接得到['hello sun' 'hi zhang'],比用 Python 循环拼接快多了,尤其数据量大的时候。

还有np.char.multiply(),这函数有点 "魔性"------np.char.multiply('good', 3)会返回'goodgoodgood',感觉做重复文本生成时能用到,比如批量生成重复的提示语。

最让我惊喜的是lower()upper(),处理大小写转换比 Python 原生函数爽。试了下np.char.lower(['NICE', 'GOOD']),直接转成['nice' 'good'],数组里的元素一键批量处理,PyCharm 里运行结果秒出,不用一个个遍历,太省事儿了。

不过踩了个小坑:encode()decode()要注意编码格式。我用cp500编码后,试着用utf-8解码,直接报了UnicodeDecodeError(PyCharm 的红色报错超显眼)。后来才明白,编码和解码得用同一个格式,这细节得记牢。

二、数学运算:从三角函数到取整,PyCharm 里算得又快又准

数学课上的三角函数,NumPy 里居然直接能算!老师说不用死记公式,用np.sin()np.cos()就行,但得先把角度转成弧度(乘以np.pi/180)。我在 PyCharm 里敲了组角度[0, 30, 90],算出来的正弦值和课本上的一模一样,比手算靠谱多了。

取整函数里,np.around()np.floor()np.ceil()这三个得拎出来说:

  • around(5.55, decimals=1)会四舍五入到一位小数,得5.6

  • floor(-1.7)是 "向下取整",结果-2.0(别和 Python 的int()搞混,这个更严格);

  • ceil(0.6)则是 "向上取整",返回1.0

在 PyCharm 里改改参数跑一遍,这三个函数的区别立马就清楚了。

三、统计分析才是重头戏:这些函数能解决 80% 的数据分析问题

这部分是今天的重点,老师说 "学会这些,以后算成绩、做调查分析都用得上"。我结合课堂练习里的 "成绩表" 试了试,果然香:

np.mean()np.median()必须放一起说 ------ 算平均分用mean,算中位数用median。比如三个同学的数学成绩[80, 65, 66]mean70.33median66,PyCharm 里输np.mean(成绩数组)一秒出结果,比 Excel 点鼠标快多了。

还有np.amax()np.amin(),找最大值最小值用它们准没错。算成绩时,我用np.amax(成绩表, axis=1)直接找出每个同学的最高分(axis=1 是按行算),axis=0则能算出每科的最高分,简直是为表格数据量身定做的。

哦对了,np.ptp()这个函数有点冷门但实用 它能直接算出 "最大值减最小值"。比如np.ptp([10, 20, 30])返回20,相当于快速看一组数据的 "波动范围",比自己写max()-min()省代码。

四、踩过的坑:这些细节在 PyCharm 里试了才知道

今天实操时踩了两个小坑,记下来给你们避坑:

1、用inplace=True要谨慎:之前学 Pandas 时习惯用inplace,但 NumPy 里很多函数不需要 ------ 比如np.sort()直接返回排序后的数组,不用纠结 "改不改原数组",PyCharm 里打印一下就知道结果。

2、轴参数axis别搞反:算行还是列?记住axis=0是 "沿着列"(比如算每科平均分),axis=1是 "沿着行"(比如算每个同学的平均分)。我一开始搞反了,在 PyCharm 里把数组打印出来,对着结果一看就明白了。

五、学以致用:用今天学的函数解决课堂练习

最后老师留了道 "成绩计算" 题,正好用上今天的知识点:

给了三个同学的语文、数学、英语成绩(含考试和平时成绩),要求算 "最终成绩"(考试 60%+ 平时 40%),还要算每个人的平均分、每科最高分。

我用np.mean()算平均分,np.amax()找最高分,甚至用np.around()把结果四舍五入到小数点后两位 ------ 全程在 PyCharm 里调试,改一行代码跑一次,很快就出结果了。原来这些函数放一起用,能解决这么具体的问题,瞬间觉得今天的课没白听~

六、最后碎碎念:PyCharm 真的是学习利器

以前用记事本写代码,错了都不知道哪错。今天用 PyCharm,函数名敲一半就有提示,报错了直接标红,甚至会建议怎么改(比如我把np.char.add写成np.add,它直接提示 "是不是要调用字符串函数")。新手学 NumPy,强烈建议用它,省不少时间。

今天的知识点就这些,不算全,但都是我觉得最实用的。明天打算再试试排序和搜索函数,有新发现再更~你们学 NumPy 时遇到过什么坑?评论区聊聊呀!

相关推荐
秋风战士23 分钟前
通信算法之307:fpga之时序图绘制
笔记·fpga开发
Virgil13942 分钟前
【YOLO学习笔记】YOLOv8详解解读
笔记·学习·yolo
m0_598250002 小时前
参考平面与返回电流
笔记
₯㎕星空&繁华4 小时前
接口自动化-pytest
运维·经验分享·笔记·自动化·pytest·接口
AI视觉网奇6 小时前
nohup 学习笔记
笔记·学习
一个尚在学习的计算机小白6 小时前
大模型学习笔记
笔记·学习
MUTA️7 小时前
《CogAgent: A Visual Language Model for GUI Agents》论文精读笔记
人工智能·笔记·语言模型·多模态
胤祥矢量商铺9 小时前
菜鸟笔记007 [...c(e), ...d(i)]数组的新用法
c语言·开发语言·javascript·笔记·illustrator插件
泽虞9 小时前
C语言深度语法掌握笔记:底层机制,高级概念
java·c语言·笔记