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 时遇到过什么坑?评论区聊聊呀!

相关推荐
商业白皮书9 小时前
杭州企业做 GEO 怎么选服务商?B2B 制造、外贸出海与品牌连锁选型指南
笔记
商业白皮书9 小时前
密不透风的瑕疵防线:东集SEV400视觉传感器,定义“轻量化”精准检测
笔记
谢白羽12 小时前
MiniMax-H3 : 4卡 H20-3e一套权重部署实践/8卡H200部署优化实测
笔记·llm·论文·大模型部署·sglang
郝学胜-神的一滴12 小时前
Effective Python 条款 13:善用星号解包,告别下标切片拆分的坑
服务器·开发语言·数据结构·python·程序人生·pycharm
志尊宝12 小时前
Vue3 零基础每日笔记(024):组件的创建与使用——从 import 到自动导入
前端·vue.js·笔记·前端框架·html5
chnyi6_ya13 小时前
论文阅读笔记:VBVR-Pro 把「用生成来推理」变成一个可训练、可验证、可优化的闭环
论文阅读·笔记
contro1_h13 小时前
关于ArcGIS许可管理器服务无法启动的问题
经验分享·笔记·学习方法
1314lay_100714 小时前
SQL SERVER 修改已创建的表
经验分享·笔记
東隅已逝,桑榆非晚14 小时前
vector(模拟实现)
c++·笔记·学习
AAA代码批发商15 小时前
DAY43 ARM 体系结构学习笔记|嵌入式入门,从硬件组件到流水线、内存与栈帧
arm开发·笔记·学习