当前位置: 首页 > news >正文

数据分析基础之《numpy(4)—ndarry运算》

一、逻辑运算

当我们要操作符合某一条件的数据时,需要用到逻辑运算

1、运算符
满足条件返回true,不满足条件返回false

# 重新生成8只股票10个交易日的涨跌幅数据
stock_change = np.random.normal(loc=0, scale=1, size=(8, 10))# 获取前5行前5列的数据
stock_change = stock_change[0:5, 0:5]# 逻辑判断,如果涨跌幅大于0.5,就标记为true,否则标记为false
stock_change > 0.5

2、布尔索引
想要对布尔数据进行一个统一的操作,相当于是取出数组中为true的所以值,或为false的所有值

# 布尔索引
stock_change[stock_change > 0.5]

二、通用判断函数

1、np.all()
传入一组布尔值,只要有一个false,就返回false,全都是true才返回true

2、np.any()
传入一组布尔值,只要有一个true,就返回true,全都是false才返回false

3、例子

# 判断stock_change是否全是上涨的
np.all(stock_change > 0)stock_change# 判断stock_change是否有上涨的
np.any(stock_change > 0)

三、np.where(三元运算符)

1、通过使用np.where能够进行更加复杂的运算
np.where(布尔值, true的位置要设置的值, false的位置要设置的值)

2、例子

# 判断前四个股票前四天的涨跌幅,大于0的置为1,否则为0
temp = stock_change[:4, :4]tempnp.where(temp > 0, 1, 0)

3、np.logical_and 逻辑与

4、np.logical_or 逻辑或

5、例子

# 判断前四个股票前四天的涨跌幅,大于0.5并且小于1的,置为1,否则置为0
np.where(np.logical_and(temp > 0.5, temp < 1), 1, 0)# 判断前四个股票前四天的涨跌幅,大于0.5或者小于-0.5的,置为1,否则置为0
np.where(np.logical_or(temp > 0.5, temp < -0.5), 1, 0)

四、统计运算

1、如果想要知道涨幅或者跌幅最大的数据,应该怎么做

2、统计指标函数
np.min(a, axis=None, out=None, keepdims=False):最小值
np.max(a, axis=None, out=None, keepdims=False):最大值
np.mean(a, axis=None, out=None, keepdims=False):平均值
np.median(a, axis=None, out=None, keepdims=False):中位数
np.var(a, axis=None, out=None, keepdims=False):方差
np.std(a, axis=None, out=None, keepdims=False):标准差

3、可以用两种方式调用
np.函数名
ndarray.方法名

4、axis默认为axis=0即列向,如果axis=1即横向

5、例子

# 对于前四个股票前四天数据,进行一些统计运算
print("前四只股票前四天的最大涨幅{}".format(np.max(temp, axis=1)))
print("前四只股票前四天的最大跌幅{}".format(np.min(temp, axis=1)))
print("前四只股票前四天的波动程度{}".format(np.std(temp, axis=1)))
print("前四只骨片前四天的平均涨跌幅{}".format(np.mean(temp, axis=1)))

6、获得最大值最小值的位置(索引)
np.argmax(a, axis)
np.argmin(a, axis)

7、例子

# 获取股票指定哪一天的涨幅最大
print("前四只股票前四天内涨幅最大{}".format(np.argmax(temp, axis=1)))
print("前四天一天内涨幅最大的股票{}".format(np.argmax(temp, axis=0)))

五、数组运算

1、场景
平时成绩占30%,期末成绩占70%,算出最终成绩

2、数组与数的运算
运算符作用到数组中的每一个元素

# 数组与数的运算
arr = np.array([[1,2,3,2,1,4], [5,6,1,2,3,1]])arr + 10

3、数组与数组的运算

# 数组与数组的运算
arr1 = np.array([[1,2,3,2,1,4], [5,6,1,2,3,1]])
arr2 = np.array([[1,2,3,4], [3,4,5,6]])
arr1 + arr2

提示不满足广播机制!

4、广播机制

(1)执行broadcast的前提在于,两个nadarray执行的是element-wise的运算,Broadcast机制的功能是为了方便不同形状的ndarray(numpy库的核心数据结构)进行数学运算

(2)当操作两个数组时,numpy会逐个比较它们的shape(构成的元组tuple),只有在下述情况下,两个数组才能够进行数组与数组的运算
维度相等(单看这一列)
shape(其中相对应的一个地方为1)

(3)可以这样理解,首先把数组形状展开,从右到左按列来看,两个情况中只要满足一个就可以

以下情况不匹配:

(4)运算的结果,每一个维度取最大的

(5)例子

arr1 = np.array([[1,2,3,2,1,4], [5,6,1,2,3,1]])
arr2 = np.array([[1], [3]])arr1 # (2, 6)arr2 # (2, 1)arr1 + arr2

arr1是2行6列,arr2是2行1列

相加的结果,维度相同的,对应的每一行分别运算,维度为1的对所有行运算

六、矩阵运算

1、如何才能进行学生成绩计算呢

2、什么是矩阵
矩阵,英文matrix,和array的区别矩阵必须是2维的,但是array可以是多维的

3、两种方法存储矩阵
(1)ndarray 二维数组

# 矩阵运算
# ndarray存储矩阵
data = np.array([[80,86], [82,80], [85,78], [90,90], [86,82], [82,90], [78,80], [92,94]])datatype(data)


(2)matrix 数据结构
np.mat()
将数组转换成矩阵类型

# matrix存储矩阵
data_mat = np.mat([[80,86], [82,80], [85,78], [90,90], [86,82], [82,90], [78,80], [92,94]])data_mattype(data_mat)

4、矩阵乘法运算
矩阵乘法的两个关键:形状改变和运算规则

(1)形状改变

必须符合上面的式子,否则运算出错。第一个矩阵的列数和第二个矩阵的行数要一致

(2)运算规则

5、ndarray矩阵乘法api
np.matmul:矩阵相乘
np.dot:点乘

6、计算成绩
ndarray存储方式

# 计算成绩
dataweights = np.array([[0.3], [0.7]])weightsnp.matmul(data, weights)np.dot(data, weights)

matrix存储方式

weights_mat = np.mat(weights)weights_matdata_mat * weights_mat

相关文章:

数据分析基础之《numpy(4)—ndarry运算》

一、逻辑运算 当我们要操作符合某一条件的数据时&#xff0c;需要用到逻辑运算 1、运算符 满足条件返回true&#xff0c;不满足条件返回false # 重新生成8只股票10个交易日的涨跌幅数据 stock_change np.random.normal(loc0, scale1, size(8, 10))# 获取前5行前5列的数据 s…...

分享一个项目——Sambert UI 声音克隆

文章目录 前言一、运行ipynb二、数据标注三、训练四、生成总结 前言 原教程视频 项目链接 运行一个ipynb&#xff0c;就可操作 总共四步 1&#xff09;运行ipynb 2&#xff09;数据标注 3&#xff09;训练 4&#xff09;生成 一、运行ipynb 等运行完毕后&#xff0c;获得该…...

ES6 语法精粹简读

本文旨在记录 ES6 的核心常用语法,略去一些细节。 文章目录 1 var 函数作用域与 let/const 块作用域2 解构赋值数组结构赋值对象结构赋值3 ES6 中字符串的新语法模板字符串模板编译标签模板4 ES6 中的函数默认值rest 参数箭头函数this 指向问题部署管道机制尾调用优化...

uniapp整合echarts(目前性能最优、渲染最快方案)

本文echarts示例如上图,可扫码体验渲染速度及loading效果,下文附带本小程序uniapp相关代码 实现代码 <template><view class="source...

解决Electron应用中的白屏问题的实用方法

在使用Electron构建应用程序时&#xff0c;一些开发者可能会面临窗口加载过程中出现的白屏问题。这种问题主要分为两个方面&#xff1a; Electron未加载完毕HTML&#xff1a; 这时Electron自身产生的白色背景可能导致用户在启动应用时看到一片空白。HTML加载渲染过程中的短暂白…...

大数据---34.HBase数据结构

一、HBase简介 HBase是一个开源的、分布式的、版本化的NoSQL数据库&#xff08;即非关系型数据库&#xff09;&#xff0c;依托Hadoop分布式文件系统HDFS提供分布式数据存储&#xff0c;利用MapReduce来处理海量数据&#xff0c;用Zookeeper作为其分布式协同服务&#xff0c;一…...

【工具使用-有道云笔记】如何在有道云笔记中插入目录

一&#xff0c;简介 本文主要介绍如何在有道云笔记中插入目录&#xff0c;方便后续笔记的查看&#xff0c;供参考。 二&#xff0c;具体步骤 分为两个步骤&#xff1a;1&#xff0c;设置标题格式&#xff1b;2&#xff0c;插入标题。非常简单~ 2.1 设置标题格式 鼠标停在标…...

用户管理第2节课-idea 2023.2 后端一删除表,从零开始---【本人】

一、清空model文件夹下&#xff0c;所有文件 1.1.1效果如下&#xff1a; 1.1代码内容 package com.daisy.usercenter.model;import lombok.Data;Data public class User {private Long id;private String name;private Integer age;private String email; }二、清空mapper文件…...

如何添加jar包到本地Maven项目中

在 Maven 中添加一个外部 JAR 包的依赖&#xff0c;你需要使用 Maven 的 <dependency> 元素来指定该 JAR 包的坐标信息。以下是具体的步骤&#xff1a; 将 JAR 包手动添加到 Maven 本地仓库&#xff1a; 首先&#xff0c;确保将外部 JAR 包手动添加到 Maven 本地仓库。可…...

智能优化算法应用:基于学校优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于学校优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于学校优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.学校优化算法4.实验参数设定5.算法结果6.…...

【MATLAB第85期】基于MATLAB的2023年智能进化算法/元启发式算法合集(持续更新)

【MATLAB第85期】基于MATLAB的2023年智能进化算法/元启发式算法合集&#xff08;持续更新&#xff09; 1.海象进化算法&#xff08;Walrus Optimization Algorithm&#xff09; 作者&#xff1a;Pavel Trojovsk and Mohammad Dehghani 2.暴龙优化算法&#xff08;Tyrannosa…...

[Realtek sdk-3.4.14b]RTL8197FH-VG+RTL8812F WiFi使用功率限制功能使用说明

sdk说明 ** Gateway/AP firmware v3.4.14b – Aug 26, 2019**  Wireless LAN driver changes as:  Refine WiFi Stability and Performance  Add 8812F MU-MIMO  Add 97G/8812F multiple mac-clone  Add 97G 2T3R antenna diversity  Fix 97G/8812F/8814B MP issu…...

Vue中为什么data属性是一个函数而不是一个对象?(看完就会了)

文章目录 一、实例和组件定义data的区别二、组件data定义函数与对象的区别三、原理分析四、结论 一、实例和组件定义data的区别 vue实例的时候定义data属性既可以是一个对象&#xff0c;也可以是一个函数 const app new Vue({el:"#app",// 对象格式data:{foo:&quo…...

Linux中一些知识积累(持续补充)

如何安装Eigen3库&#xff1f; 在linux中直接命令安装。Eigen/Dense 是 Eigen 库中的一个模块&#xff0c;提供了对密集矩阵&#xff08;Dense Matrix&#xff09;的支持。 sudo apt install libeigen3-devLinux 中VScode中运行C时&#xff0c;gdb 的Launch与Attach有什么区别…...

内网渗透基础

内网 内网指的是内部局域网&#xff0c;常说的LAN&#xff08;local area network&#xff09;。常见家庭wifi网络和小型的企业网络&#xff0c;通常内部计算机直接访问路由器设备&#xff0c;路由器设备接入移动电信的光纤实现上网。 内部局域网可以通过交换机/防火墙组成多个…...

【2023年网络安全优秀创新成果大赛专刊】银行数据安全解决方案(天空卫士)

在2023年网络安全优秀创新成果大赛&#xff0c;成都分站中&#xff0c;天空卫士银行数据安全方案获得优秀解决方案奖。与此同时&#xff0c;天空卫士受信息安全杂志邀请&#xff0c;编写《银行数据安全解决方案》。12月6日&#xff0c;天空卫士编写的《银行数据安全解决方案》做…...

嵌入式串口输入详细实例

学习目标 掌握串口初始化流程掌握串口输出单个字符掌握串口输出字符串掌握通过串口printf熟练掌握串口开发流程学习内容 需求 串口循环输出内容到PC机。 串口数据发送 添加Usart功能。 首先,选中Firmware,鼠标右键,点击Manage Project Items 接着,将gd32f4xx_usart.c添…...

springboot(ssm智慧生活商城系统 网上购物系统Java系统

springboot(ssm智慧生活商城系统 网上购物系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#xff09; 数…...

Peter算法小课堂—贪心与二分

太戈编程655题 题目描述&#xff1a; 有n辆车大甩卖&#xff0c;第i辆车售价a[i]元。有m个人带着现金来申请购买&#xff0c;第i个到现场的人带的现金为b[i]元&#xff0c;只能买价格不超过其现金额的车子。你是大卖场总经理&#xff0c;希望将车和买家尽量多地进行一对一配对…...

搭建Vue前端项目的流程

1、安装nodejs 测试安装是否成功 $ npm -v 6.14.16 $ node -v v12.22.122、全局安装npm install -g vue/cli&#xff0c;后续会使用到vue命令 $ vue --version vue/cli 5.0.8使用vue create demo_project_fe命令创建项目&#xff0c;使用箭头键来选择&#xff0c;确认使用回车…...

1.使用 Blazor 利用 ASP.NET Core 生成第一个 Web 应用

参考 https://dotnet.microsoft.com/zh-cn/learn/aspnet/blazor-tutorial/create 1.使用vs2022创建新项目 选择 C# -> Windows -> Blzxor Server 应用模板 2.项目名称BlazorApp下一步 3.选择 .NET6.0 或 .NET7.0 或 .NET8.0 创建 4.运行BlazorApp 5.全部选择是。 信…...

如何入门 GPT 并快速跟上当前的大语言模型 LLM 进展?

入门GPT 首先说第一个问题&#xff1a;如何入门GPT模型&#xff1f; 最直接的方式当然是去阅读官方的论文。GPT模型从2018年的GPT-1到现在的GPT-4已经迭代了好几个版本&#xff0c;通过官方团队发表的论文是最能准确理清其发展脉络的途径&#xff0c;其中包括GPT模型本身和一…...

【pentaho】kettle读取Hive表不支持bigint和timstamp类型解决。

一、bigint类型 报错: Unable to get value BigNumber(16) from database resultset显示kettle认为此应该是decimal类型(kettle中是TYPE_BIGNUMBER或称BigNumber)&#xff0c;但实际hive数据库中是big类型。 修改kettle源码解决&#xff1a; kettle中java.sql.Types到kettle…...

centos 8 部署nextCloud

参考链接&#xff1a; Example installation on CentOS 8 — Nextcloud latest Administration Manual latest documentation 第一次 在RHEL 9.2部署&#xff0c;部署完成后&#xff0c;上传任意文件提示&#xff1a; 与服务器断开链接 发生未知错误 第二次 计划在centos…...

vue3 element-plus 输入框 clearable属性 聚焦时宽度会变化

解决办法 因为你的代码中el-input是没有宽度的&#xff0c; 所以实际渲染出来的 el-input宽度 原生input宽度 前缀图标宽度 后缀图标宽度。 可以写css固定el-input宽度来处理。 :deep.el-input.el-input--default.el-input--suffix {// 固定宽度width: 200px !important; …...

【科技前沿】数字孪生技术改革智慧供热,换热站3D可视化引领未来

换热站作为供热系统不可或缺的一部分&#xff0c;其能源消耗对城市环保至关重要。在双碳目标下&#xff0c;供热企业可通过搭建智慧供热系统&#xff0c;实现供热方式的低碳、高效、智能化&#xff0c;从而减少碳排放和能源浪费。通过应用物联网、大数据等高新技术&#xff0c;…...

Vue.js 教程

Vue.js&#xff08;读音 /vjuː/, 类似于 view&#xff09; 是一套构建用户界面的渐进式框架。 Vue 只关注视图层&#xff0c; 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 阅读本教程前&#xff0c;您需要了解的…...

听GPT 讲Rust源代码--src/tools(21)

File: rust/src/tools/miri/src/shims/x86/mod.rs 在Rust的源代码中&#xff0c;rust/src/tools/miri/src/shims/x86/mod.rs文件的作用是为对x86平台的处理提供支持。它包含一些用于模拟硬件操作的shim函数和相关的类型定义。 具体来说&#xff0c;该文件中的函数是通过使用一组…...

OpenCV | 告别人工目检:深度学习技术引领工业品缺陷检测新时代

文章目录 机器视觉缺陷检测工业上常见缺陷检测方法内容简介作者简介目录读者对象如何阅读本书获取方式 机器视觉 机器视觉是使用各种工业相机&#xff0c;结合传感器跟电气信号实现替代传统人工&#xff0c;完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工…...

Inkscape SVG 编辑器 导入 Gazebo

概述 本教程描述了拉伸 SVG 文件的过程&#xff0c;这些文件是 2D 的 图像&#xff0c;用于在 Gazebo 中为您的模型创建 3D 网格。有时是 更容易在 Inkscape 或 Illustrator 等程序中设计模型的一部分。 在开始之前&#xff0c;请确保您熟悉模型编辑器。 本教程将向您展示如…...

wordpress4.2.15漏洞/网上开店如何推广自己的网店

数据从业者常在多种工具之间跳来跳去&#xff0c;这种碎片化导致了协作、共享和生产力方面的问题。 企业云数据量的增加以及数据转换、模型构建和可视化工具的出现&#xff0c;推动了现代数据堆栈的崛起。大部分公司都在加大对数据团队的投入&#xff0c;以适应不断变化的需求…...

百度seo和sem/优化营商环境指什么

有两种解决方案&#xff1a; 1. 客户端button一定得是button类型&#xff0c;而不能是submit,且此服务器端的button只能用width0 height0 来隐藏&#xff0c;而不能用style"display:none;" 或visiblefalse来进行隐藏! 2. 在服务器上注册&#xff1a;this.btnStat.At…...

网站建设推广文案/百度浏览器app下载

前言 在深入之前先了解下下ReentrantLock 和 Condition: 重入锁ReentrantLock: ReentrantLock锁在同一个时间点只能被一个线程锁持有&#xff1b;而可重入的意思是&#xff0c;ReentrantLock锁&#xff0c;可以被单个线程多次获取。 ReentrantLock分为“公平锁”和“非公平锁”…...

网页版梦幻西游谛听怎么获得/杭州网络排名优化

使用的环境&#xff1a;Xcode V8.3.3 学习OpenGL的过程中&#xff0c;会使用到gltools,glew,glfw3,glut等库文件&#xff0c;glut包Mac自带&#xff0c;故不需要考虑。主要考虑的是另三个包文件怎样安装&#xff0c;配置。本文主要讲两大部分&#xff1a; 1. glew&#xff0c;…...

精通网站建设 100/seo搜索引擎优化就业前景

我不喜欢被当今互联网产业吹嘘到比冥王哈迪斯还该死的所谓业务逻辑&#xff0c;我只喜欢机器本身&#xff0c;所以我不会编程&#xff0c;是的&#xff0c;这是报应。 我只会C语言和汇编&#xff0c;但是并不很。 但我觉得C语言编译器自动生成的那些push RBP之类的指令简直糟…...

上海网站建设免费推荐/免费b站在线观看人数在哪里找到

目录 一、软件测试的生命周期 二、如何描述一个bug 一、软件测试的生命周期 软件测试的生命周期&#xff1a; 需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估 需求阶段 –测试人员了解需求、对需求进行分解&#xff0c;得出测试需求 计划阶段 -根据需求编写…...