应用Numpy实现对数据的处理

创建简单的数组

主要使用np.array()函数,语法如下

import numpy as np
np.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0)

主要参数:

  • Object:任何具有数组接口方法的对象

  • dtype:数据类型

  • ndmin:指定生成数组的最小维数

# 创建一个指定长度为二维数组,数据并没有初始化,值随机
n1 = np.empty([2,3],dtype=int)
print(n1)
​
# 指定二维数组的维度并对值进行填充,全部初始化为0
n1 = np.zeros([2,3],dtype=int)
print(n1)
​
# 创建一个指定长度为二维数组,并将数据全部初始化为1
n1 = np.ones([2,3],dtype=int)
​
# 创建一个指定长度为二维数组,并将数据全部初始化为指定的值
n1 = np.full([2,3],5)

通过np.arange(stat,stop,step,dtype=None)创建数组

start:起始值,默认为0

stop:终止值,不包含

step:步长

np.arange(1,6,2) #[1,3,5]

通过np.linspace()生成等差数列

n = np.linspace(10,50,5,dtype=int) #[10 20 30 40 50]

通过np.logspace()生成等比数列

n = np.logspace(1,4,num=4,base=2,dtype=int) #[ 2  4  8 16]

生成随机数组,使用rand()函数,生成(0,1)之间的随机数组,传入一个值随机生成一维数组,传入一对值随机生成一个二维数组

numpy.random.rand(d0,d1,d2,d3)
参数d0,d1等为整数,表示每一维度的长度

randn()函数用于从正态分布中返回随机生成的数组,语法同rand函数

n = np.random.rand(5,4,3)
​[[0.37385151 0.2058156  0.52630237][0.97588255 0.14450416 0.24276859][0.20887649 0.52145804 0.33680438][0.65021309 0.4109006  0.90690288]]

randint()函数的作用和arrange()函数类似,用于生成一定范围内的随机数组,左闭右开区间

n = np.random.randint(low=1,high=10,size=5)
print(n)
# [1 3 7 6 2]

normal()函数用于生成正态分布的随机数

n = np.random.normal(loc=0,scale=1,size=5)
#loc 均值 scale 标准差 size 大小
print(n)
#[-0.51231413  0.0950708   0.29954217 -1.37279317 -0.40188256]

数据类型:

为了区别python数据类型,bool,int,float等数据类型的末尾都加了_ ,比如

Bool_
Int_

numpy数组的加减乘除乘幂运算都是对应位置的元素进行加减乘除

数组之间的标量运算可以理解为向量和标量之间的运算

数组的切片式索引:

arrar[start:stop:step]

一个三行三列的二维数组,通过切片式索引操作

n = np.ones([3,3],dtype=int)
print(n[:2,2:])
print(n[:3,1:])
#[[1] [1]]
[[1 1][1 1][1 1]]

数组的合并:

横向合并:将两个行数相同的数组在行方向上进行简答拼接

np.concatenate()方法将两个待合并的数组以列表的形式传递给concatenate,并通过设置axis参数指明在行方向还是列方向上进行合并

arr1 = np.full([2,3],5)
print(arr1)
arr2 = np.full([2,3],6)
print(arr2)
n1 = np.concatenate([arr1,arr2],axis=1)
print(n1)
​
[[5 5 5][5 5 5]]
​
[[6 6 6][6 6 6]]
​
[[5 5 5 6 6 6][5 5 5 6 6 6]]
​
# 同样实现横向合并
n1 = np.hstack([arr1,arr2])
print(n1)
# 实现横向合并
n1 = np.column_stack([arr1,arr2])

纵向合并

import numpy as np
#np.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0)
arr1 = np.full([2,2],5)
print(arr1)
arr2 = np.full([2,2],6)
print(arr2)
n1 = np.concatenate([arr1,arr2],axis=0)
print(n1)
print(len(n1))
​
[[5 5][5 5]]
[[6 6][6 6]]
[[5 5][5 5][6 6][6 6]]
4
​
#  下面的函数也可以实现纵向合并
np.vstack([arr1,arr2])
​
np.row_stack([arr1,arr2])

数组的分割

split函数沿着特定的轴将数组分割为子数组

numpy.split(arr,indices_or_sections,axis)
三个参数分别代表:被分割的数组,
indices_or_sections:如果是一个整数,就用该数平均分,如果是一个数组,为沿轴切分的位置(左开右闭)
axis:设置切割的方向,默认为0,横向切割,即水平方向
​
hsplit函数用于水平分割数组,通过指定要返回的相同形状的数组数量来分割
vsplit用于垂直分割轴

常见的统计分析函数,使用时去搜索

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

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

相关文章

Apache Thrift C++库的TThreadPoolServer模式的完整示例

1. 本程序功能 1) 要有完整的request 和 response; 2) 支持多进程并行处理任务; 3)子进程任务结束后无僵尸进程 2.Apache Thrift C库的编译和安装 见 步步详解:Apache Thrift C库从编译到工作模式DEMO_北雨南萍的博客-CSDN博客 3.框架生成 数据字…

简述静态网页和动态网页的区别。简述 Webl.0 和 Web2.0 的区别。安装tomcat8,配置服务启动脚本,部署jpress应用

静态网页和动态网页区别 静态网页和动态网页是两种常见的网页类型,它们在内容生成和交互方式上存在不同。 静态网页是在服务器上提前生成好的网页,它的内容在访问时不会发生变化。静态网页通常由HTML、CSS和JavaScript等静态文件组成,这些文…

【css问题】flex布局中,子标签宽度超出父标签宽度,导致布局出现问题

场景:文章标题过长时,只显示一行,且多余的部分用省略号显示。 最终效果图: 实现时,flex布局,出现问题: 发现text-overflow: ellipsis不生效,省略符根本没有出现。 而且因为设置了 …

《MySQL高级篇》十五、其他数据库日志

文章目录 1. MySQL支持的日志1.1 日志类型1.2 日志的弊端 2. 慢查询日志(slow query log)3. 通用查询日志3.1 问题场景3.2 查看当前状态3.3 启动日志3.4 查看日志3.5 停止日志3.6 删除\刷新日志 4. 错误日志(error log)4.1 启动日志4.2 查看日志4.3 删除\刷新日志4.4 MySQL8.0新…

ThreadLocal有内存泄漏问题吗

对于ThreadLocal的原理不了解或者连Java中的引用类型都不了解的可以看一下我的之前的一篇文章Java中的引用和ThreadLocal_鱼跃鹰飞的博客-CSDN博客 我这里也简单总结一下: 1. 每个Thread里都存储着一个成员变量,ThreadLocalMap 2. ThreadLocal本身不存储数据&…

flutter开发实战-实现首页分类目录入口切换功能

。 在开发中经常遇到首页的分类入口,如美团的美食团购、打车等入口,左右切换还可以分页更多展示。 一、使用flutter_swiper_null_safety 在pubspec.yaml引入 # 轮播图flutter_swiper_null_safety: ^1.0.2二、实现swiper分页代码 由于我这里按照一页8…

装饰器模式(C++)

定义 动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码&减少子类个数)。 一《设计模式》 GoF 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能&#xf…

[openCV]基于拟合中线的智能车巡线方案V2

import cv2 as cv import os import numpy as np# 遍历文件夹函数 def getFileList(dir, Filelist, extNone):"""获取文件夹及其子文件夹中文件列表输入 dir:文件夹根目录输入 ext: 扩展名返回: 文件路径列表"""newDir d…

【JavaScript】元素获取指南

简介 在 JavaScript 中,我们经常需要通过获取元素来进行 DOM 操作和交互。本教程将介绍多种获取元素的方式,包括根据 ID、标签名、类名、选择器、属性和名称等。 通过ID获取元素 使用getElementById方法根据元素的ID属性获取单个元素。 var element = document.getElementB…

机器学习框架PyTorch详解和案列分析

目录 一、基本介绍二、基本概念三、操作流程四、详细安装命令五、应用场景六、最新发展 PyTorch 是一个基于 Python 的科学计算包,主要针对两类人群: 作为 NumPy 的替代品,可以利用 GPU 的性能进行计算。作为一个高灵活性、速度快的深度学习平…

【windows】powershell使用ll、head、tail等linux命令

powershell使用ll、head、tail等linux命令 最近在windows系统上办公比较多,想使用linux上经常用到的ll、head、tail等命令。发现可以通过修改powershell的配置文件来实现。具体地,一般需要修改以下路径的配置文件,没有的话就在该路径下创建一…

Unity学习参考文档和开发工具

☺ unity的官网文档:脚本 - Unity 手册 ■ 学习方式: 首先了解unity相关概述,快速认识unity编辑器,然后抓住重点的学:游戏对象、组件|C#脚本、预制体、UI ☺ 学习过程你会发现,其实Unity中主要是用c#进行开…

[Docker实现测试部署CI/CD----自由风格和流水线的CD操作(6)]

目录 12、自由风格的CD操作发布 V1.0.0 版本修改代码并推送GitLab 中项目打 Tag 发布 V2.0.0 版本Jenkins 配置 tag 参数添加 Git 参数添加 checkout 命令修改构建命令配置修改 SSH 配置 部署 v1.0.0重新构建工程构建结果 部署 v2.0.0重新构建工程访问 部署v3.0.0 13、流水线任…

Jmeter函数助手(一)随机字符串(RandomString)

一、目标 实现一个请求单次调用,请求体里多个集合中的相同参数(zxqs)值随机从序列{01、02、03、03、04、05、06、07、08}中取 若使用CSV数据文件、用户参数等参数化手段,单次执行请求,请求体里多个集合中的相同参数&a…

传染病学模型 | Python实现基于使用受控SIR模型分析SARS-CoV-2疫情

效果一览 文章概述 传染病学模型 | Python实现基于使用受控 SIR 模型分析 SARS-CoV-2 疫情 源码设计 import jax.numpy as np import

webpack基础知识七:说说webpack proxy工作原理?为什么能解决跨域?

一、是什么 webpack proxy,即webpack提供的代理服务 基本行为就是接收客户端发送的请求后转发给其他服务器 其目的是为了便于开发者在开发模式下解决跨域问题(浏览器安全策略限制) 想要实现代理首先需要一个中间服务器,webpac…

Python 开发工具 Pycharm —— 使用技巧Lv.2

pydoc是python自带的一个文档生成工具,使用pydoc可以很方便的查看类和方法结构 本文主要介绍:1.查看文档的方法、2.html文档说明、3.注释方法、 一、查看文档的方法 **方法1:**启动本地服务,在web上查看文档 命令【python3 -m…

基于STM32CubeMX和keil采用通用定时器中断实现固定PWM可调PWM波输出分别实现LED闪烁与呼吸灯

文章目录 前言1. PWM波阐述2. 通用定时器2.1 为什么用TIM142.2 TIM14功能介绍2.3 一些配置参数解释2.4 PWM实现流程&中断2.4.1 非中断PWM输出(LED闪烁)2.4.2 中断PWM输出(LED呼吸灯) 3. STM32CubeMX配置3.1 GPIO配置3.2 时钟配置3.3 定时器相关参数配置3.4 Debug配置3.5 中…

ESP32-C2开发板 ESP8684芯片 兼容ESP32-C3开发

C2是一个芯片采用4毫米x 4毫米封装,与272 kB内存。它运行框架,例如ESP-Jumpstart和ESP造雨者,同时它也运行ESP-IDF。ESP-IDF是Espressif面向嵌入式物联网设备的开源实时操作系统,受到了全球用户的信赖。它由支持Espressif以及所有…

2023/8/5总结

主要实现了: 举报: 内容管理搜索的实现 管理员界面 还有消息没写,以及一些小细节