【数据分析】numpy基础第四天

文章目录

    • 1. 前天教程与巩固
      • 1.1. 第一天
      • 1.2. 第二天
      • 1.3. 第三天
    • 2. 问题解析
      • 2.1. 第一天
        • 1. 如何创建Numpy数组
        • 2. 如何获取第3个元素
        • 3. 如何获取包含第1、2、3行的切片
      • 2.2. 第二天
        • 4. 如何将一个有10个元素的一维数组,转变为10行1列的二维数组
        • 5. 如何在垂直或者水平上合并两个数组
        • 6. 如何筛选出数组arr中大于5的元素
      • 2.3. 第三天
        • 7. 对下面创建的数组`arr`的所有元素乘以3
        • 8. 计算数组`arr`的最大值和最小值
        • 9. 计算数组`arr`的标准差和均值
    • 总结

在第四天,我们只需要用一点代码案例来巩固一下以前的内容就OK了。

1. 前天教程与巩固

以下是前面三天的教程链接,以及用于巩固的小问题:

1.1. 第一天

  • 第一天教程
  1. 如何创建Numpy数组
  2. 如何获取第3个元素
  3. 如何获取包含第1、2、3行的切片

1.2. 第二天

  • 第二天教程
  1. 如何将一个有10个元素的一维数组,转变为10行1列的二维数组
  2. 如何在垂直或者水平上合并两个数组
  3. 如何筛选出数组arr中大于5的元素

1.3. 第三天

  • 第三天教程
  1. 对下面创建的数组arr的所有元素乘以3
arr = np.array([[x for x in range(3)] for _ in range(3)])
  1. 计算数组arr最大值最小值
  2. 计算数组arr标准差均值

2. 问题解析

2.1. 第一天

1. 如何创建Numpy数组

示例代码

import numpy as nparr = np.array([1, 2, 3])

代码解析
在这段代码中,我们首先导入了numpy包,并使用别名np引用它。然后,我们调用了np.array()函数并传入了一个列表[1, 2, 3],来创建一个numpy数组。

2. 如何获取第3个元素

示例代码

third_element = arr[2]

代码解析
这里我们通过索引访问numpy数组arr中的第三个元素。由于Python中的索引是从0开始的,所以索引2对应于第三个位置的元素。

3. 如何获取包含第1、2、3行的切片

鉴于多数编程语言的索引都是从0开始,与生活习惯有点不同,通常,没有显式声明是索引,就按照从1开始的规则来进行(前些天的教程也是这么写的,但那时候并没有声明,这里为一些感到二义性的读者说声抱歉)。

示例代码

arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
slice_1_2_3 = arr_2d[:3, :]

代码解析
在这段代码中,arr_2d是一个3x3的二维数组。我们通过arr_2d[:3, :]取出了前三行的所有数据。仅有冒号:表示选取这一维度上的全部内容。

2.2. 第二天

4. 如何将一个有10个元素的一维数组,转变为10行1列的二维数组

示例代码

arr_1d = np.arange(10)
arr_2d = arr_1d.reshape((10, 1))

代码解析
这里我们使用np.arange(10)创建了一个0到9的一维数组。然后,我们使用reshape((10, 1))将这个一维数组转换成了一个10行1列的二维数组。

5. 如何在垂直或者水平上合并两个数组

示例代码

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr_vstack = np.vstack((arr1, arr2))  # 垂直合并
arr_hstack = np.hstack((arr1, arr2))  # 水平合并

代码解析
在这里,np.vstack()用于垂直堆叠两个数组,而np.hstack()用于水平堆叠两个数组。

6. 如何筛选出数组arr中大于5的元素

示例代码

arr = np.array([1, 6, 3, 7, 9, 2, 5])
filtered_arr = arr[arr > 5]

代码解析
通过arr > 5,我们创建了一个数组,仅包含原数组中大于5的元素。

更深入一点解析
arr > 5,其实就是对arr中所有元素进行了一次比较运算,运算结果是布尔值(真假值),例如1 > 5的结果是False

arr的所有元素进行了比较运算后,会得到一个充满了TrueFalse布尔数组,比如下面的代码。

bool_arr = arr > 5 # bool_arr中的元素只有True和False

如果写arr[bool_arr],也就是把布尔数组传到中括号[]内,numpy就会根据bool_arr的内容对arr进行筛选,True则留下,False则去除。

arr[bool_arr] # 因为bool_arr = arr > 5,这里和直接写arr[arr > 5]一样

2.3. 第三天

7. 对下面创建的数组arr的所有元素乘以3

示例代码

arr = np.array([[x for x in range(3)] for _ in range(3)])
arr_multiplied = arr * 3

代码解析
这段代码演示了Numpy数组的标量乘法运算。arr * 3会将arr中的每个元素都乘以3。

8. 计算数组arr的最大值和最小值

示例代码

arr_max = arr.max()
arr_min = arr.min()

代码解析
max()min()函数分别找出numpy数组中的最大和最小值。

9. 计算数组arr的标准差和均值

示例代码

arr_std = arr.std()
arr_mean = arr.mean()

代码解析
std()计算的是数组的标准差,即数据分散度的一种度量。mean()计算的是数组的平均值。这两个函数为我们提供了数组分布的统计信息。

总结

本文我们复习巩固了前三天所学习的常用操作,在即将到来的第五天的教程中,我们会结合之前学习的基础知识,使用Numpy实现两个简单的算法:Min-Max归一化Z-Score标准化,这两种算法可以使我们的数据更加适合进行聚类算法(我们可以通过聚类算法,挖掘出数据中潜在的关系)模型的建立。

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

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

相关文章

超温报警器电路设计方案汇总

超温报警器电路设计方案(一) 该超温报警电路由温度采集电路、继电器控制电路、延时电路、秒脉冲信号发生器、计数译码电路、数显电路、报警电路共同构成。下面来详细介绍一下各部分电路的功能。 温度采集电路 温度采集电路由负温度系数的热敏电阻RW、R…

CodeComplete-ReadingNote

《代码大全》CODECOMPLETE2 apollowangjunbo/Code-Complete-reading-note: 《代码大全》读书笔记 (github.com) 第一章 欢迎进入软件构建的世界 软件开发过程中各种不同的活动: 定义问题(problem definition)需求分析(requireme…

PDF标准详解(一)——PDF文档结构

已经很久没有写博客记录自己学到的一些东西了。但是在过去一年的时间中自己确实又学到了一些东西。一直攒着没有系统化成一篇篇的文章,所以今年的博客打算也是以去年学到的一系列内容为主。通过之前Vim系列教程的启发,我发现还是写一些系列文章对自己的帮…

Day01-变量和数据类型课后练习-参考答案

文章目录 1、输出你最想说的一句话!2、定义所有基本数据类型的变量和字符串变量3、用合适类型的变量存储个人信息并输出4、定义圆周率PI5、简答题 1、输出你最想说的一句话! 编写步骤: 定义类 Homework1,例如:Homewo…

04基于人工智能大模型的智慧教育应用

04基于人工智能大模型的智慧教育应用 赛题关键:AIGC教育的应用 一:确定应用方向 选取待解决的教育领域核心问题,确定产生怎么样的产品,基于大模型解决什么样的问题 可参考实例一: 高级版作业帮 基于大模型启发式…

Day48 动态规划part09 198. 打家劫舍 213. 打家劫舍 II 337. 打家劫舍 III

Day48 动态规划part09 198. 打家劫舍 213. 打家劫舍 II 337. 打家劫舍 III 198. 打家劫舍 class Solution { public:int rob(vector<int>& nums) {vector<int> dp(nums.size()); //考虑下标i的最大偷窃金额dp[i]if(nums.size()0) return 0;if(nums.size()1) …

测试C#调用OpenCvSharp和IronOcr从摄像头中识别文字

学习了基于OpenCvSharp获取摄像头数据&#xff0c;同时学习了基于IronOcr的文字识别用法&#xff0c;将这两者结合即是从摄像头中识别文字。本文测试C#调用OpenCvSharp和IronOcr从摄像头中识别文字的基本用法、。   新版Winform项目&#xff0c;在Nuget包管理器中添加以下程序…

案例分析技巧-软件工程

一、考试情况 需求分析&#xff08;※※※※&#xff09;面向对象设计&#xff08;※※&#xff09; 二、结构化需求分析 数据流图 数据流图的平衡原则 数据流图的答题技巧 利用数据平衡原则&#xff0c;比如顶层图的输入输出应与0层图一致补充实体 人物角色&#xff1a;客户、…

告别繁琐!轻松创建旧版Spring Boot项目!

推荐文章 给软件行业带来了春天——揭秘Spring究竟是何方神圣&#xff08;一&#xff09; 给软件行业带来了春天——揭秘Spring究竟是何方神圣&#xff08;二&#xff09; 给软件行业带来了春天——揭秘Spring究竟是何方神圣&#xff08;三&#xff09; 给软件行业带来了春天—…

强化学习原理python篇06——DQN

强化学习原理python篇05——DQN DQN 算法定义DQN网络初始化环境开始训练可视化结果 本章全篇参考赵世钰老师的教材 Mathmatical-Foundation-of-Reinforcement-Learning Deep Q-learning 章节&#xff0c;请各位结合阅读&#xff0c;本合集只专注于数学概念的代码实现。 DQN 算…

[Python图像处理] 使用OpenCV创建深度图

使用OpenCV创建深度图 双目视觉创建深度图相关链接双目视觉 在传统的立体视觉中,两个摄像机彼此水平移动,用于获得场景上的两个不同视图(作为立体图像),就像人类的双目视觉系统: 通过比较这两个图像,可以以视差的形式获得相对深度信息,该视差编码对应图像点的水平坐标的…

基于Python 网络爬虫和可视化的房源信息的设计与实现

摘 要 一般来说&#xff0c;在房地产行业&#xff0c;房源信息采集&#xff0c;对企业来说至关重要&#xff0c;通过人工采集数据的方式进行数据收集&#xff0c;既耗时又费力&#xff0c;影响工作效率&#xff0c;还导致信息时效性变差&#xff0c;可靠性偏低&#xff0c;不利…

QWT开源库使用

源代码地址&#xff1a;Qwt Users Guide: Qwt - Qt Widgets for Technical Applications Qwt库包含GUI组件和实用程序类&#xff0c;它们主要用于具有技术背景的程序。除了2D图的框架外&#xff0c;它还提供刻度&#xff0c;滑块&#xff0c;刻度盘&#xff0c;指南针&#xf…

matlab appdesigner系列-仪器仪表4-旋钮(离散)

旋钮&#xff08;离散&#xff09;&#xff0c;或叫分档旋钮&#xff0c;跟旋钮的连续性相区别&#xff0c;呈分档性。 示例&#xff1a;模拟空调档位切换 操作步骤&#xff1a; 1&#xff09;将旋钮&#xff08;离散&#xff09;、信号灯、标签拖拽到画布上&#xff0c;并设…

CSS 星空按钮

<template><button class="btn" type="button"><strong>星空按钮</strong><div id="container-stars"><div id="stars"></div></div><div id="glow"><div class=…

Kafka-服务端-GroupMetadataManager

GroupMetadataManager是GroupCoordinator中负责管理Consumer Group元数据以及其对应offset信息的组件。 GroupMetadataManager底层使用Offsets Topic,以消息的形式存储Consumer Group的GroupMetadata信息以及其消费的每个分区的offset,如图所示。 consumer_offsets的某Partiti…

ffmpeg4.0.4 ffmpeg.c 讲解

ffmpeg.c 是 FFmpeg 中的一个核心文件&#xff0c;负责实现 FFmpeg 命令行工具的主要功能。这个文件包含了 FFmpeg 命令行工具的入口函数 main()&#xff0c;以及与命令行参数解析、多媒体处理、编解码、封装格式处理等相关的功能实现。 int main(int argc, char **argv) {int…

每日一题——LeetCode1365.有多少小于当前数字的数字

方法一 暴力循环 对于数组里的没一个元素都遍历一遍看有多少元素小于当前元素 var smallerNumbersThanCurrent function(nums) {let n nums.length;let ret [];for (let i 0; i < n; i) {let count 0;for (let j 0; j < n; j) {if (nums[j] < nums[i]) {count…

菜谱的未来:SpringBoot, Vue与MySQL的智能推荐系统设计

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

算法学习记录:动态规划

前言&#xff1a; 算法学习记录不是算法介绍&#xff0c;本文记录的是从零开始的学习过程&#xff08;见到的例题&#xff0c;代码的理解……&#xff09;&#xff0c;所有内容按学习顺序更新&#xff0c;而且不保证正确&#xff0c;如有错误&#xff0c;请帮助指出。 学习工具…