数据分析第三讲:numpy的应用入门(二)

news2025/2/26 4:39:36

NumPy的应用(二)

数组对象的方法

获取描述统计信息

描述统计信息主要包括数据的集中趋势、离散程度和频数分析等,其中集中趋势主要看均值和中位数,离散程度可以看极值、方差、标准差等,详细的内容大家可以阅读《统计思维系列课程01:解读数据》。

array1 = np.random.randint(1, 100, 10)
array1

输出:

array([46, 51, 15, 42, 53, 71, 20, 62,  6, 94])

计算总和、均值和中位数。

代码:

print(array1.sum())
print(np.sum(array1))
print(array1.mean())
print(np.mean(array1))
print(np.median(array1))
print(np.quantile(array1, 0.5))

说明:上面代码中的meanmedianquantile分别是 NumPy 中计算算术平均值、中位数和分位数的函数,其中quantitle函数的第二个参数设置为0.5表示计算50%分位数,也就是中位数。

输出:

460
460
46.0
46.0
48.5
48.5

极值、全距和四分位距离。

代码:

print(array1.max())
print(np.amax(array1))
print(array1.min())
print(np.amin(array1))
print(array1.ptp())
print(np.ptp(array1))
q1, q3 = np.quantile(array1, [0.25, 0.75])
print(q3 - q1)

输出:

94
94
6
6
88
88
34.25

方差、标准差和变异系数。

代码:

print(array1.var())
print(np.var(array1))
print(array1.std())
print(np.std(array1))
print(array1.std() / array1.mean())

输出:

651.2
651.2
25.51862065237853
25.51862065237853
0.5547526228777941

绘制箱线图。

箱线图又称为盒须图,是显示一组数据分散情况的统计图,因形状如箱子而得名。 它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。

代码:

plt.boxplot(array1, showmeans=True)
plt.ylim([-20, 120])
plt.show()

输出:

值得注意的是,对于二维或更高维的数组,在获取描述统计信息时,可以通过名为axis的参数指定均值、方差等运算是沿着哪一个轴来执行,axis参数不同,执行的结果可能是大相径庭的,如下所示。

代码:

array2 = np.random.randint(60, 101, (5, 3))
array2

输出:

array([[72, 64, 73],
       [61, 73, 61],
       [76, 85, 77],
       [97, 88, 90],
       [63, 93, 82]])

代码:

array2.mean()

输出:

77.0

代码:

array2.mean(axis=0)

输出:

array([73.8, 80.6, 76.6])

代码:

array2.mean(axis=1)

输出:

array([69.66666667, 65.        , 79.33333333, 91.66666667, 79.33333333])

代码:

array2.max(axis=0)

输出:

array([97, 93, 90])

代码:

array2.max(axis=1)

输出:

array([73, 73, 85, 97, 93])

再看看绘制箱线图,对于二维数组每一列都会产生一个统计图形,如下所示。

代码:

plt.boxplot(array2, showmeans=True)
plt.ylim([-20, 120])
plt.show()

输出:

说明:箱线图中的小圆圈用来表示离群点,也就是大于 Q 3 + 1.5 × I Q R \small{Q_3 + 1.5 \times IQR} Q3+1.5×IQR或小于 Q 1 − 1.5 × I Q R \small{Q_1 - 1.5 \times IQR} Q11.5×IQR的值。公式中的常量1.5可以通过绘制箱线图的boxplot函数的whis参数进行修改,常用的值是1.53,修改为3通常是为了标识出极度离群点。

需要说明的是,NumPy 的数组对象并没有提供计算几何平均值、调和平均值、去尾平均值等的方法,如果有这方面的需求,可以使用名为 scipy 的三方库,它的stats模块中提供了这些函数。此外,该模块还提供了计算众数、变异系数、偏态、峰度的函数,代码如下所示。

代码:

from scipy import stats

print(np.mean(array1))                # 算术平均值
print(stats.gmean(array1))            # 几何平均值
print(stats.hmean(array1))            # 调和平均值
print(stats.tmean(array1, [10, 90]))  # 去尾平均值
print(stats.variation(array1))        # 变异系数
print(stats.skew(array1))             # 偏态系数
print(stats.kurtosis(array1))         # 峰度系数

输出:

46.0
36.22349548825599
24.497219530825497
45.0
0.5547526228777941
0.11644192634527782
-0.7106251396024126
其他相关方法概述
  1. all() / any()方法:判断数组是否所有元素都是True / 判断数组是否有为True的元素。

  2. astype()方法:拷贝数组,并将数组中的元素转换为指定的类型。

  3. reshape()方法:调整数组对象的形状。

  4. dump()方法:保存数组到二进制文件中,可以通过 NumPy 中的load()函数从保存的文件中加载数据创建数组。

    代码:

    array.dump('array1-data')
    array3 = np.load('array1-data', allow_pickle=True)
    array3
    

    输出:

    array([46, 51, 15, 42, 53, 71, 20, 62,  6, 94])
    
  5. tofile()方法:将数组对象写入文件中。

    array1.tofile('res/array.txt', sep=',')
    
  6. fill()方法:向数组中填充指定的元素。

  7. flatten()方法:将多维数组扁平化为一维数组。

    代码:

    array2.flatten()
    

    输出:

    array([1, 2, 3, 4, 5, 6, 7, 8, 9])
    
  8. nonzero()方法:返回非0元素的索引。

  9. round()方法:对数组中的元素做四舍五入操作。

  10. sort()方法:对数组进行就地排序。

    代码:

    array1.sort()
    array1
    

    输出:

    array([ 6, 15, 20, 42, 46, 51, 53, 62, 71, 94])
    
  11. swapaxes()transpose()方法:交换数组指定的轴和转置。

    代码:

    array2.swapaxes(0, 1)
    

    输出:

    array([[1, 4, 7],
           [2, 5, 8],
           [3, 6, 9]])
    

    代码:

    array2.transpose()
    

    输出:

    array([[1, 4, 7],
           [2, 5, 8],
           [3, 6, 9]])
    
  12. tolist()方法:将数组转成 Python 中的list

    代码:

    print(array2.tolist())
    print(type(array2.tolist()))
    

    输出:

    [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    <class 'list'>
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1841824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用事件日志识别常见 Windows 错误

事件查看器&#xff0c;一个标准的诊断工具&#xff0c;嵌入在Windows操作系统&#xff0c;记录了所有的系统事件&#xff0c;该日志捕获有关硬件问题、软件中断和整体系统行为的详细信息。通过分析这些日志&#xff0c;管理员可以查明系统错误和运行时错误的根本原因。了解如何…

如何成为沟通高手,读懂人心的心理学

一、教程描述 人际关系和沟通能力是闯荡社会的重要资本&#xff0c;懂心理让你看透他人的心思&#xff0c;读懂人心让人占尽优势&#xff0c;有效沟通让你提高效率&#xff0c;知己知彼&#xff0c;谋定而后动&#xff0c;充分了解他人的心理是一个人立足于职场和社交场的基础…

SYD881X读取GATT VALUE的长度

SYD881X读取GATT VALUE的长度 现在具体遇到这样一个需要&#xff0c;机器生产后要更新profile&#xff0c;这个只能够通过升级4K来做&#xff0c;但是需要知道profile是否改变了&#xff0c;这个就要知道profile是否改变来决定是否要升级&#xff0c;这里的做法是增加一个函数&…

可以免费领取tokens的大模型服务

本文更新时间&#xff1a;2024年6月20日 豆包大模型 “亲爱的客户&#xff0c;模型提供方将在5月15日至8月30日期间&#xff0c;为您提供一次独特的机会&#xff0c;即高达5亿tokens的免费权益。这是我们对您长期支持的感谢&#xff0c;也是对未来合作的期待。” 在8月30日之…

手机网站制作软件是哪些

手机网站制作软件是一种用于设计、开发和创建适用于移动设备的网站的软件工具。随着移动互联网时代的到来&#xff0c;越来越多的用户开始使用手机浏览网页和进行在线交流&#xff0c;因此&#xff0c;手机网站制作软件也逐渐成为了市场上的热门工具。 1. Adobe Dreamweaver&am…

计算机组成原理(Wrong Question)

目录 一、计算机系统概述 *1.1 计算机发展历程 1.2 计算机系统层次结构 1.3 计算机的性能指标 二、 数据的表示和运算 2.1 数制和编码 2.2 运算方法和运算电路 2.3 浮点数的表示与运算 三、存储系统 3.1 存储器概述 3.2 主存储器 3.3 主存储器与CPU的连接 3.4 外部…

Springboot集成Mybatisplus过程

这里写目录标题 背景步骤明确标准实操过程创建好数据库&#xff0c;命名好&#xff08;这里会考察一个命名规范&#xff09;&#xff0c;表的命名&#xff0c;中间使用下划线隔离开。使用idea创建Springboot项目&#xff08;注意版本问题&#xff09;使用插件生成代码常用代码p…

下载mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar操作教程

1、下载地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 2、截图如下

Nvidia Isaac Sim 入门教程 2024(3)图形界面

Isaac Sim 基本使用 版权信息 Copyright 2023-2024 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. The author …

产品经理方法论

1、用户体验 5 要素 1&#xff0c;表现层是你拿到一个产品以后&#xff0c;视觉表现&#xff0c;配色&#xff0c;布局&#xff0c;排版等等 2&#xff0c;框架层&#xff0c;是交互层面的东西&#xff0c;比如&#xff0c;操作情况&#xff0c;刷新&#xff0c;页面跳转&…

android 在线程中更新界面

在Android中&#xff0c;你不能直接从子线程中更新UI&#xff0c;因为这会导致应用崩溃。你需要使用Handler或runOnUiThread()来更新UI。 使用Handler 以下是如何使用Handler在子线程中更新UI的示例&#xff1a; 1. 创建Handler实例&#xff1a; import android.os.Bundle;…

肩背筋膜炎怎么治疗最有效

肩背筋膜炎是一种常见的肌肉骨骼疾病&#xff0c;其症状主要包括&#xff1a;肩背区域疼痛&#xff1a;由于筋膜组织受到损伤&#xff0c;肩背部位会出现明显的疼痛&#xff0c;疼痛可能会放射到周围的其他部位&#xff0c;严重时会影响睡眠和休息。肌肉紧张和僵硬&#xff1a;…

数据库实战(二)(引言+关系代数)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;数据库 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 常见概念 一、什么是数据库&#xf…

AJAX 原理-day3

XMLHttpRequest AJAX原理 是 XMLHttpRequest对象 定义&#xff1a; 关系&#xff1a;axios 内部采用 XMLHttpRequest 对象与服务器交互 步骤&#xff1a; 1. 创建 XMLHttpRequest 对象 2. 配置 请求方法 和请求 url 地址 3. 监听 loadend 事件&#xff0c;接收 …

AI绘画Stable Diffusion神级插件AnimateDiff超稳动画教程来了!手把手教你一次性学会

大家好&#xff0c;我是设计师阿威 今天给大家分享AI做稳定动画的新教程&#xff0c;这一次的稳定效果&#xff0c;比上一次和上上次都更加惊艳&#xff0c;而且实现难度直线下降&#xff01;几乎可以说是有手就会&#xff0c;非常适合追求高效高质效果的商用场景&#xff01;…

(7)摄像机和云台

文章目录 前言 1 云台 2 带有MAVLink接口的摄像机 3 相机控制和地理标签 4 视频质量差的常见修复方法 5 详细主题 前言 Copter、Plane 和 Rover 最多支持 3 轴云台&#xff0c;包括自动瞄准感兴趣区域&#xff08;ROI&#xff09;的相机和自动触发相机快门等先进功能。按…

【OS基础】符合AUTOSAR标准的RTAOS-Alarms详解

目录 前言 正文 7.报警Alarms 7.1配置Alarms 7.1.1激活一个任务 7.1.2 设置一个事件 7.1.3报警回调Alarm Callback 7.1.4 增加计数器值 7.2设置Alarms 7.2.1 绝对Alarms 7.2.2 相对Alarm 7.3自启动Alarms 7.4 删除Alarms 7.5确认何时会发生Alarm 7.6非周期Alarm…

Appium:Appium-Python-Client与Selenium版本不兼容导致的问题

一、问题描述 在执行python代码过程中&#xff0c;出现了以下错误&#xff1a; 错误一&#xff1a;No module named appium.webdriver.common.touch_action Traceback (most recent call last):File "d:\xxx\index.py", line 3, in <module> ModuleNotFound…

山西青年杂志山西青年杂志社山西青年编辑部2024年第10期目录

本刊专稿 共融共创、校企共建BIM创新创业中心的探索与实践 黄强;马福贵;贾晓敏;苏艳贞;魏艳卿; 1-3 财务管理课程专创融合教学改革与实践 宋衍程; 4-7 数字化赋能国际贸易实务课程建设研究 吴珍彩; 8-11《山西青年》投稿&#xff1a;cn7kantougao163.com 青年教育研…

VSCode 安装NeoVim扩展(详细)

目录 1、安装NeoVim扩展 2、windows安装Neovim软件 3、优化操作相关的配置&#xff1a; 5、Neovim最好的兼容性配置 6、技巧和特点 6.1 故障排除 6.2、Neovim 插件组合键设置 6.3、跳转列表 1、安装NeoVim扩展 在扩展商店搜索NeoVim&#xff0c;安装扩展 2、windows安装…