当前位置:首页 > 科技  > 软件

关于 Python 数据分析的 15 个 NumPy 应用

来源: 责编: 时间:2024-06-06 17:41:37 250观看
导读欢迎来到Python数据分析的世界!对于初学者来说,NumPy是你的第一站,它是Python科学计算的基石,特别是当你想要处理数组和进行大规模数据操作时。本文专为那些希望深入了解并掌握NumPy核心功能的数据分析新手设计。我们将通

欢迎来到Python数据分析的世界!对于初学者来说,NumPy是你的第一站,它是Python科学计算的基石,特别是当你想要处理数组和进行大规模数据操作时。本文专为那些希望深入了解并掌握NumPy核心功能的数据分析新手设计。我们将通过10个实用的应用示例,带你从基础操作到一些高级技巧,让你的数据分析之旅更加顺畅。grJ28资讯网——每日最新资讯28at.com

grJ28资讯网——每日最新资讯28at.com

1. 数组创建与基本操作

应用示例:grJ28资讯网——每日最新资讯28at.com

创建数组:grJ28资讯网——每日最新资讯28at.com

import numpy as nparr = np.array([1, 2, 3, 4])print("简单数组:", arr)

这段代码创建了一个一维数组,并打印出来。grJ28资讯网——每日最新资讯28at.com

解释:np.array()是创建NumPy数组的基本函数,它接受列表、元组等作为输入。grJ28资讯网——每日最新资讯28at.com

2. 维度变换

改变形状:grJ28资讯网——每日最新资讯28at.com

arr_2d = arr.reshape(2, 2)print("二维数组:", arr_2d)

通过reshape,我们可以不改变数据的情况下,调整数组的形状。grJ28资讯网——每日最新资讯28at.com

3. 数学运算

加法与乘法:grJ28资讯网——每日最新资讯28at.com

arr_add = arr + 10arr_mult = arr * 2print("加10:", arr_add, "/n乘2:", arr_mult)

数学运算在NumPy中可以直接对数组操作,非常高效。grJ28资讯网——每日最新资讯28at.com

4. 统计分析

求平均值与最大值:grJ28资讯网——每日最新资讯28at.com

mean_val = np.mean(arr)max_val = np.max(arr)print("平均值:", mean_val, "最大值:", max_val)

np.mean()和np.max()用于快速统计分析。grJ28资讯网——每日最新资讯28at.com

5. 布尔索引

筛选特定值:grJ28资讯网——每日最新资讯28at.com

bool_arr = arr > 2print("大于2的索引:", bool_arr)filtered_arr = arr[bool_arr]print("筛选结果:", filtered_arr)

布尔索引允许根据条件选择数组元素。grJ28资讯网——每日最新资讯28at.com

6. 随机数生成

生成随机数组:grJ28资讯网——每日最新资讯28at.com

random_arr = np.random.rand(3, 3)print("3x3随机数组:", random_arr)

np.random.rand()用于生成指定形状的随机数矩阵。grJ28资讯网——每日最新资讯28at.com

7. 线性代数操作

矩阵乘法:grJ28资讯网——每日最新资讯28at.com

mat1 = np.array([[1, 2], [3, 4]])mat2 = np.array([[5, 6], [7, 8]])product = np.dot(mat1, mat2)print("矩阵乘法结果:", product)

np.dot()进行矩阵乘法,是机器学习中的基础操作。grJ28资讯网——每日最新资讯28at.com

8. 广播机制

不同形状数组运算:grJ28资讯网——每日最新资讯28at.com

broad_arr = arr + np.array([10, 10])print("广播机制结果:", broad_arr)

NumPy的广播机制允许不同形状的数组进行运算。grJ28资讯网——每日最新资讯28at.com

9. 数据排序

排序数组:grJ28资讯网——每日最新资讯28at.com

sorted_arr = np.sort(arr)print("排序后的数组:", sorted_arr)

np.sort()按升序排序数组。grJ28资讯网——每日最新资讯28at.com

10. 文件读写

保存与加载数组:grJ28资讯网——每日最新资讯28at.com

np.save('my_array.npy', arr)loaded_arr = np.load('my_array.npy')print("从文件加载的数组:", loaded_arr)

使用np.save()和np.load()进行数组的持久化存储和读取。grJ28资讯网——每日最新资讯28at.com

11.高级统计功能

分位数与标准差 :grJ28资讯网——每日最新资讯28at.com

# 分位数quartiles = np.percentile(arr, [25, 50, 75])print("四分位数:", quartiles)# 标准差与方差std_dev = np.std(arr)variance = np.var(arr)print("标准差:", std_dev, "方差:", variance)

分位数和统计度量是评估数据分布的关键指标。grJ28资讯网——每日最新资讯28at.com

12.高级索引与切片

花式索引 :grJ28资讯网——每日最新资讯28at.com

# 索引数组indices = np.array([[0, 1], [2, 2]])print("根据索引选取元素:", arr[indices])# 切片与步长sliced_arr = arr[1:4:2]  # 从第二个元素开始,每隔一个取一个print("切片结果:", sliced_arr)

花式索引让你能以非常灵活的方式访问数组元素。grJ28资讯网——每日最新资讯28at.com

13.内存效率与视图

使用视图减少内存消耗 :grJ28资讯网——每日最新资讯28at.com

view_arr = arr.view()view_arr[:] = 100  # 注意:这会改变原数组,因为是视图print("原数组变化后:", arr)

了解视图和副本的区别对于处理大型数据集至关重要。grJ28资讯网——每日最新资讯28at.com

14.向量化操作的威力

向量化操作是NumPy的核心优势,相较于Python循环,它们提供了极大的性能提升。grJ28资讯网——每日最新资讯28at.com

比较与逻辑操作 :grJ28资讯网——每日最新资讯28at.com

# 等于特定值的索引equals_three = arr == 3print("等于3的索引:", equals_three)# 逻辑与both_greater = (arr > 2) & (arr < 4)print("大于2且小于4的索引:", both_greater)

利用逻辑操作符进行条件筛选,无需显式循环。grJ28资讯网——每日最新资讯28at.com

15.性能优化提示

  • 避免循环:尽量使用向量化操作替代Python循环。
  • 使用einsum进行复杂数组计算,它在某些情况下比直接的矩阵操作更快。
  • 数组预分配:预先确定数组大小并分配内存,可以避免运行时的内存分配开销。

本文链接:http://www.28at.com/showinfo-26-92465-0.html关于 Python 数据分析的 15 个 NumPy 应用

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 喔!React19 中的 Hook 可以写在 If 条件判断中了。Use 实践:点击按钮更新数据

下一篇: 为了全面监控用户行为,我写了个超级前端工具库!

标签:
  • 热门焦点
  • 小米平板5 Pro 12.4简评:多专多能 兼顾影音娱乐的大屏利器

    疫情带来了网课,网课盘活了安卓平板,安卓平板市场虽然中途停滞了几年,但好的一点就是停滞的这几年行业又有了新的发展方向,例如超窄边框、高刷新率、多摄镜头组合等,这就让安卓
  • 十个可以手动编写的 JavaScript 数组 API

    JavaScript 中有很多API,使用得当,会很方便,省力不少。 你知道它的原理吗? 今天这篇文章,我们将对它们进行一次小总结。现在开始吧。1.forEach()forEach()用于遍历数组接收一参
  • 一文搞定Java NIO,以及各种奇葩流

    大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,
  • JVM优化:实战OutOfMemoryError异常

    一、Java堆溢出堆内存中主要存放对象、数组等,只要不断地创建这些对象,并且保证 GC Roots 到对象之间有可达路径来避免垃 圾收集回收机制清除这些对象,当这些对象所占空间超过
  • 重估百度丨“晚熟”的百度云,能等到春天吗?

    &copy;自象限原创作者|程心排版|王喻可2016年7月13日,百度云计算战略发布会在北京举行,宣告着百度智能云的正式启程。彼时的会场座无虚席,甚至排队排到了门外,在场的所有人几乎都
  • 年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元&ldquo;人在职场,应该选择什么样的着装?&rdquo;近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • 重估百度丨大模型,能撑起百度的“今天”吗?

    自象限原创 作者|程心 罗辑2023年之前,对于自己的&ldquo;今天&rdquo;,百度也很迷茫。&ldquo;新业务到 2022 年底还是 0,希望 2023 年出来一个 1。&rdquo;这是2022年底,李彦宏
  • 2299元起!iQOO Pad开启预售:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其搭载了天玑
  • iQOO Neo8系列或定档5月23日:首发天玑9200+ 安卓跑分王者

    去年10月,iQOO推出了iQOO Neo7系列机型,不仅搭载了天玑9000+,而且是同价位唯一一款天玑9000+直屏旗舰,一经上市便受到了用户的广泛关注。在时隔半年后,
Top