Python数据分析教程(一):Numpy

news/2024/5/14 6:26:22/文章来源:https://www.cnblogs.com/ranxi169/p/16709699.html

数据的纬度

一维数据:列表和集合类型

image-20220920000246375

二维数据:列表类型

image-20220920000614787

多维数据:列表类型

image-20220920000624135

高维数据:字典类型或数据表示格式,如jsonxmlyaml

image-20220920000633571

image-20220920000317372

维度:一组数据的组织形式

image-20220920000405613

列表和数组一组数据的有序结构

image-20220920000443292

Numpy

Numpy介绍

  • NumPy是一个开源的Python科学计算基础库,包含:

    • 一个强大的N维数组对象ndarray

    • 广播功能函数

    • 整合C/C++/Fortran代码的工具

    • 线性代数、傅里叶变换、随机数生成等功能

  • NumPy是SciPy、Pandas等数据处理或科学计算库的基础

模块导入:

import numpy as np

N维数组对象:ndarray

  • 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据

  • 设置专门的数组对象,经过优化,可以提升这类应用的运算速度————科学计算中,一个维度所有数据的类型往往相同

  • 数组对象采用相同的数据类型,有助于节省运算和存储空间

image-20220920001443033

ndarray实例

  • ndarray是一个多维数组对象,由两部分构成:
    • 实际的数据
    • 描述这些数据的元数据(数据维度、数据类型等)
  • ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始

image-20220920001541323

ndarray对象的属性

#属性&说明
.ndim #秩,即轴的数量或维度的数量
.shape #ndarray对象的尺度,对于矩阵,n行m列
.size #ndarray对象元素的个数,相当于.shape中n*m的值
.dtype #ndarray对象的元素类型
.itemsize #ndarray对象中每个元素的大小,以字节为单位

image-20220920002131705

ndarray的元素类型

image-20220920002043543

image-20220920002048182

ndarray数组的创建方法

  • 从Python中的列表、元组等类型创建ndarray数组
  • 使用NumPy中函数创建ndarray数组,如:arange, ones, zeros等
  • 从字节流(raw bytes)中创建ndarray数组
  • 从文件中读取特定格式,创建ndarray数组

通过列表创建ndarray:

image-20220920002305119

使用函数创建ndarray:

#函数&说明
np.arange(n) #类似range()函数,返回ndarray类型,元素从0到n-1
np.ones(shape) #根据shapes生成一个全l数组,shape是元组类型
np.zeros(shape) #根据shape生成一个全数组,shape是元组类型
np.full(shape,val) #根据shape:生成一个数组,每个元素值都是val
np.eye(n) #创建一个正方的n*n单位矩阵,对角线为1,其余为0

ndarray数组的变换:

对于创建后的ndarray数组,可以对其进行维度变换和元素类型变换

#方法&说明
.reshape(shape) #不改变数组元素,返回一个shape形状的数组,原数组不变
.resize(shape) #与.reshape()功能一致,但修改原数组
.swapaxes(ax1,ax2) #将数组n个维度中两个维度进行调换
.flatten() #对数组进行降维,返回折叠后的一维数组,原数组不变

image-20220920002941145

数组的索引和切片

  • 索引:获取数组中特定位置元素的过程
  • 切片:获取数组元素子集的过程

一维数组的索引和切片

image-20220920003059529

多维数组索引

image-20220920003137231

多维数组切片

image-20220920003157843

ndarray数组的运算

NumPy一元函数:

#函数&说明
np.abs(x)
np.fabs(x)#计算数组各元素的绝对值
np.sqrt(x)#计算数组各元素的平方根
np.square(x)#计算数组各元素的平方
np.log(x)
np.1og10(x)
np.1og2(x)#计算数组各元素的自然对数、10底对数和2底对数
np.ceil(x)
np.floor(x)#计算数组各元素的ceiling值或f1oor值
np.rint(x)#计算数组各元素的四舍五入值
np.modf(x)#将数组各元素的小数和整数部分以两个独立数组形式返回
np.cos(x)np.cosh(x)
np.sin(x)np.sinh(x)#计算数组各元素的普通型和双曲型三角函数
np.tan(x)np.tanh(x)
np.exp(x)#计算数组各元素的指数值
np.sign(x)#计算数组各元素的符号值,1(+),0,-1(-)

NumPy二元函数:

#函数&说明
+ - * / ** #两个数组各元素进行对应运算
np.maximum(x,y)
np.fmax()
np.minimum(x,y)
np.fmin() #元素级的最大值/最小值计算
np.mod(x,y) #元素级的模运算
np.copysign(x,y) #将数组y中各元素值的符号赋值给数组x对应元素
>< >= <= == != #算术比较,产生布尔型数组

Numpy数据存取:

csv格式:

image-20220920004238551

np.savetxt(frame,array,fmt='%.18e',delimiter=None)
  • frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件
  • array:存入文件的数组
  • fmt:写入文件的格式,例如:%d%.2f%.18e
  • delimiter:分割字符串,默认是任何空格

其他:

np.loadtxt(frame,dtype=np.float,delimiter=None,
unpack=False)
  • frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件
  • dtype:数据类型,可选
  • delimiter:分割字符串,默认是任何空格
  • unpack:如果True,读入属性将分别写入不同变量

其他:

a.tofile(frame, sep='', format='%s')
np.fromfile(frame, dtype=float, count=‐1, sep='')

numpy随机数函数子库:

np.random.*
#函数&说明
rand(d0,d1,..,dn) #根据d0-dn创建随机数数组,浮点数,[0,1),均匀分布
randn(d0,d1,..,dn) #根据d0-dn创建随机数数组,标准正态分布
randint(low[,high,shape]) #根据shapet创建随机整数或整数数组,范围是[low,high)
seed(s) #随机数种子,s是给定的种子值
shuffle(a) #根据数组a的第1轴进行随排列,改变数组×
permutation(a) #根据数组a的第1轴产生一个新的乱序数组,不改变数组x
choice(a[,size,replace,p]) #从一维数组a中以概率p抽取元素,形成size形状新数组 replace表示是否可以重用元素,默认为False
uniform(low,high,size) #产生具有均匀分布的数组,low起始值,high结束值,size形状
normal(loc,scale,size) #产生具有正态分布的数组,loc均值,scale标准差,size形状
poisson(lam,size) #产生具有泊松分布的数组,lam随机事件发生率,size形状

numpy统计函数:

np.*
#函数&说明
sum(a,axis=None) #根据给定轴axis计算数组a相关元素之和,axis整数或元组
mean(a,axis=None) #根据给定轴axis计算数组a相关元素的期望,axis整数或元组
average(a,axis=None,weights=None) #根据给定轴axis计算数组a相关元素的加权平均值
std(a,axis=None) #根据给定轴axis计算数组a相关元素的标准差
var(a,axis=None) #根据给定轴axis计算数组a相关元素的方差
min(a)
max(a) #计算数组a中元素的最小值、最大值
argmin(a)
argmax(a) #计算数组a中元素最小值、最大值的降一维后下标
unravel_index(index,shape) #根据shape?将一维下标index转换成多维下标
ptp(a) #计算数组a中元素最大值与最小值的差
median(a) #计算数组a中元素的中位数(中值)

numpy替换函数:

  • np.where(condition, x, y) ——满足条件(condition),输出x,不满足输出y。
  • 只有条件 (condition),没有x和y,则输出满足条件 (即非0) 元素的坐标 (等价于numpy.nonzero)

image-20220920005640033

numpy数据存取与函数**

CSV文件

np.loadtxt()
np.savetxt()

多维数据存取

a.tofile()
np.fromfile()
np.save()
np.savez()
np.load()

随机函数

np.random.rand()
np.random.randn()
np.random.randint()
np.random.seed()
np.random.shuffle()
np.random.permutation()
np.random.choice()

原文链接:https://ranxi2001.github.io/posts/13140.html
原文链接:https://blog.onefly.top/posts/13140.html

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

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

相关文章

渗透测试神器Nmap使用教程

渗透测试神器Nmap使用教程1.nmap简介2.常用参数3.nmap实战命令1.nmap简介 Nmap &#xff08;网络映射器&#xff09;是Gordon Lyon最初编写的一种安全扫描器&#xff0c;用于发现计算机网络上的主机和服务&#xff0c;从而创建网络的“映射”。为了实现其目标&#xff0c;Nmap…

java计算机毕业设计基于安卓Android的金融保险app(源码+系统+mysql数据库+Lw文档)

项目介绍 计算机信息技术的发展&#xff0c;推动了金融保险信息化管理的进程&#xff0c;并随着互联网概念的提出&#xff0c;各种互联网软件也应运而生。在传统的管理中&#xff0c;各种信息管理难&#xff0c;传播速度慢&#xff0c;需要耗费很长时间统计核查&#xff0c;不…

Oracel中视图相关概念和操作(一)

目录 1.视图概念&#xff08;有必要&#xff09; &#xff08;1&#xff09;视图基本概念 &#xff08;2&#xff09;视图和定义的表的联系 &#xff08;3&#xff09;视图的优点 2.创建视图 &#xff08;1&#xff09;使用SQL DEVELOPER创建视图&#xff08;可视化&#x…

如何正确的审核交易商牌照?这些雷区你不得不防

对于外汇平台来说&#xff0c;交易牌照可以说是重中之重&#xff0c;一个交易没有牌照&#xff0c;可以说是没有任何约束&#xff0c;属于监管裸奔状态&#xff0c;这种平台10个有10个就是黑平台。但也正因如此&#xff0c;无数黑平台也会在牌照上面做手脚&#xff0c;这些人手…

基于stm32单片机甲醛烟雾温湿度检测仪设计

目录 第1章 绪论 1.1 引言 1.1.1甲醛的特性及危害 1.1.2甲醛的来源 1.2甲醛检测仪的种类 第&#xff12;章 概述 2.1系统总概述 2.2总体方案设计 2.3硬件设计 2.4软件设计 第3章 硬件设计 3.1 硬件设计主电路图 3.2 硬件选择 3.2.1 MCU的选择与简介 3.2.3 …

Gimbal Lock欧拉角死锁问题

技术背景 在前面几篇跟SETTLE约束算法相关的文章(1, 2, 3)中&#xff0c;都涉及到了大量的向量旋转的问题--通过一个旋转矩阵&#xff0c;给定三个空间上的欧拉角\(\alpha, \beta, \gamma\)&#xff0c;将指定的向量绕对应轴进行旋转操作。而本文主要就阐述这些旋转操作中&…

复习十二:广义表

一、广义表的定义及其重要特性 广义表简称表&#xff0c;它是线性表的推广。一个广义表是n(n>0)个元素的一个序列&#xff0c;若n0时&#xff0c;则称为空表&#xff1b; 广义表中有两种数据元素&#xff0c;即有两种结构的结点&#xff1a;表结点和原子结点&#xff1b;广义…

大数据ClickHouse进阶(十一):ClickHouse的Join子句

文章目录 ClickHouse的Join子句 一、连接精度

Springcloud的学习笔记(二)

Springcloud学习笔记(一) 目录8 消费者订单模块9 重构10 Eureka服务注册与发现10.1 Eureka基础知识10.2 EurekaServer服务端安装10.3 支付微服务8001入驻进EurekaServer10.4 订单微服务81入驻进EurekaServer10.5 Eureka集群原理说明10.6 Eureka集群环境构建10.7 订单支付两微服…

ASR6500S SIP模块与SX1262系列集成替代SX1278 SX1262内核+RF前端

ASR6500S是一系列LoRa SIP模块,集成了RF前端和LoRa无线电收发器SX1262系列,支持LoRa 和FSK调制。LoRa技术是一种针对LPWAN应用的低数据速率、超远程、超低功耗通信进行优化的 广谱协议。 ASR6500S设计为电池寿命长,有功接收电流消耗4.2 mA,最大发射功率可达+22dBm。该模块实…

Shell之练习题

目录 一、练习一 1.1、分析 1.2、编辑脚本文件 1.3、测试 二、练习二 2.1、分析 2.2、编辑脚本文件 ​2.3、测试 三、练习三 3.1、分析 3.2、编辑脚本文件 ​3.3、测试 四、练习四 4.1、分析 4.2、编辑脚本文件 4.3、测试​ 一、练习一 需求&#xff1a;给定一…

Python量化交易实战:获取股票数据并做分析处理

量化交易&#xff08;也称自动化交易&#xff09;是一种应用数学模型帮助投资者进行判断&#xff0c;并且根据计算机程序发送的指令进行交易的投资方式&#xff0c;它极大地减少了投资者情绪波动的影响。量化交易的主要优势如下&#xff1a; 快速检测客观、理性自动化 量化交易…

Prompt Learning : Prefix Tuning

Prompt Learning 首先Prompt Learning 称为提示学习&#xff0c;是最近比较火的一种NLP范式&#xff0c;过去“PretrainFinetuning"的模式虽然能够利用预训练语言模型在大规模语料库上的预训练带来的初始优良性能&#xff0c;但是对于不同的NLP任务&#xff0c;比如NER&a…

Day20_脚手架,分析脚手架结构,render()函数

最基本的脚手架下的一个文件夹 1 gitignore git的忽略文件&#xff0c;那些文件或者文件夹不想接收get的管理。 2 babel.config.js babel的控制文件 肯定会涉及到es6 ---> es5&#xff0c;也肯定会借助babel去转换。 3. package.json 包的说明书&#xff0c;包的名…

【小程序从0到1】小程序常用组件一览

欢迎来到我的博客 &#x1f4d4;博主是一名大学在读本科生&#xff0c;主要学习方向是前端。 &#x1f36d;目前已经更新了【Vue】、【React–从基础到实战】、【TypeScript】等等系列专栏 &#x1f6e0;目前正在学习的是&#x1f525;React/小程序React/小程序React/小程序&am…

融合黄金正弦与sigmoid连续化的海鸥优化算法-附代码

融合黄金正弦与sigmoid连续化的海鸥优化算法 文章目录融合黄金正弦与sigmoid连续化的海鸥优化算法1.海鸥优化算法2. 改进海鸥优化算法2.1 Sigmoid 函数收敛因子2.2 全局最优更新连续化2.3 黄金正弦指引机制3.实验结果4.参考文献5.Matlab代码6.Python代码摘要&#xff1a;针对海…

四向车立体库|四向穿梭车AGV如何进行入库和出库?

仓库仓储货架类型多样&#xff0c;存取货方式主要分为以下几种&#xff0c;包括人工存取货、叉车存取货和自动化存取货。如今&#xff0c;很多企业都想实现仓库自动化运作&#xff0c;所以想用自动化仓库货架。比如四向车货架就是自动化仓储货架的一种。那么&#xff0c;四向穿…

java毕业设计教程SSM框架车库停车计费系统|停车场[包运行成功]

&#x1f345;文末获取联系&#x1f345; 一、项目介绍 《车库停车计费系统》 该项目采用技术&#xff1a; 后台采用了ssm框架 前台使用htmlcssjsfreemarker 使用了mysql数据库tomcat服务器&#xff0c;项目含有源码、文档、配套开发软件、软件安装教程、项目发布教程等 …

计算机毕业设计ssm+vue基本微信小程序的高校科研管理系统

项目介绍 随着计算机信息技术的迅猛发展&#xff0c;互联网技术大规模应用到各行各业&#xff0c;传统的管理系统也逐渐精细化。高校作为教书育人的场所&#xff0c;各种管理也更应该智能化&#xff0c;特别是计算机信息专业更是最早接触信息技术&#xff0c;为高校各部门开发…

ASF之InSAR云计算(成果包括DEM、缠绕影像、形变图)

前几天在ASF下载数据&#xff0c;看到了On Demand这个功能&#xff0c;索性探索一下&#xff0c;感觉结果还不错&#xff0c;下面介绍给大家使用。 ASF使用GAMMA&#xff0c;基于一个SAR影像对&#xff0c;参考GLO-30&#xff0c;云生产DEM、缠绕数据、形变图等。 1 查找数据 …