Python数据分析的15个NumPy应用!

文末赠精品编程资料~~

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

1. 数组创建与基本操作

应用示例

  • 创建数组 :

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

    这段代码创建了一个一维数组,并打印出来。

解释np.array()是创建NumPy数组的基本函数,它接受列表、元组等作为输入。

2. 维度变换

  • 改变形状 :

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

    通过reshape,我们可以不改变数据的情况下,调整数组的形状。

3. 数学运算

  • 加法与乘法 :

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

    数学运算在NumPy中可以直接对数组操作,非常高效。

4. 统计分析

  • 求平均值与最大值 :

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

    np.mean()np.max()用于快速统计分析。

5. 布尔索引

  • 筛选特定值 :

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

    布尔索引允许根据条件选择数组元素。

6. 随机数生成

  • 生成随机数组 :

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

    np.random.rand()用于生成指定形状的随机数矩阵。

7. 线性代数操作

  • 矩阵乘法 :

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

    np.dot()进行矩阵乘法,是机器学习中的基础操作。

8. 广播机制

  • 不同形状数组运算 :

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

    NumPy的广播机制允许不同形状的数组进行运算。

9. 数据排序

  • 排序数组 :

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

    np.sort()按升序排序数组。

10. 文件读写

  • 保存与加载数组 :

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

    使用np.save()np.load()进行数组的持久化存储和读取。

11.高级统计功能

分位数与标准差 :

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

分位数和统计度量是评估数据分布的关键指标。

12.高级索引与切片

花式索引 :

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

花式索引让你能以非常灵活的方式访问数组元素。

13.内存效率与视图

使用视图减少内存消耗 :

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

了解视图和副本的区别对于处理大型数据集至关重要。

14.向量化操作的威力

向量化操作是NumPy的核心优势,相较于Python循环,它们提供了极大的性能提升。

比较与逻辑操作 :

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

利用逻辑操作符进行条件筛选,无需显式循环。

15.性能优化提示

  • 避免循环:尽量使用向量化操作替代Python循环。

  • 使用einsum进行复杂数组计算,它在某些情况下比直接的矩阵操作更快。

  • 数组预分配:预先确定数组大小并分配内存,可以避免运行时的内存分配开销。

结语

掌握这些高级应用和优化技巧,将使你在数据分析的道路上更加得心应手。

好了,今天的分享就到这里了,我们下期见。

如果你是准备学习Python或者正在学习(想通过Python兼职),下面这些你应该能用得上:
【点击这里】领取!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
Python所有方向的学习路线图,清楚各个方向要学什么东西
100多节Python课程视频,涵盖必备基础、爬虫和数据分析
100多个Python实战案例,学习不再是只会理论
华为出品独家Python漫画教程,手机也能学习
历年互联网企业Python面试真题,复习时非常方便
****

在这里插入图片描述

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值