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

相关推荐
wgego2 小时前
基础的反序列化一些总结(php和java)
java·开发语言·笔记
依然范特东5 小时前
强化学习笔记6--IS、PPO、TD、DQN、Actor-Critic
笔记·算法
Mxzx品牌7 小时前
佛山招聘软件哪个好:【帅聘网】匹配度高
笔记·其他·生活
九硕智慧建筑一体化厂家7 小时前
无线动能开关|烘焙后厨防潮免布线照明控制方案
运维·笔记·智慧城市
ZZHow10248 小时前
PyTorch深度学习入门笔记(小土堆)P7-14
人工智能·pytorch·笔记·python·深度学习
乱七八糟的屋子8 小时前
【C++数值计算】NumCpp超详细入门教程(纯正Numpy语法、零学习成本、C++首选科学计算库、性能压测对比)
c++·数值计算·numpy·高性能计算·科学计算·ndarray
九硕智慧建筑一体化厂家8 小时前
直流照明|档案库房专用照明,防紫外线、防纸张老化、适配24小时值守
运维·网络·笔记·智慧城市
prog_61038 小时前
【笔记】用cursor手搓cursor(八)
笔记·llm·大语言模型·agent
一只小菜鸡..8 小时前
南京大学 操作系统 (JYY) 学习笔记:文件系统实现——从 FAT、ext2 到现代 B-Tree 黑科技
笔记·科技·学习
小飞猪。。9 小时前
笔记十八:大模型 RLHF 系统工程实战笔记
人工智能·笔记