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

数据分析-numpy2

文章目录

  • numpy
    • 统计函数
    • 数据类型
    • 随机函数
    • 数组的其他函数

numpy

统计函数

  • 求平均值mean()
m1=np.arange(20).reshape((4,5)
#默认求数组所有元素的平均值)
m1.mean()
#axis=0列从上往下
m1.mean(axis=0)
#axis=1行从左往右
m1.mean(axis=1)
  • 中位数np.median
ar1=np.array([1,3,5,6,8])
np.median(ar1)
  • 标准差ndarray.std

定义:总体各单位标准值与其平均数离差平方的算术平均数的平方根

ar1=np.array([1,3,5,6,8])
np.std(ar1)

按步骤计算标准差
import math
math.sqrt(np.sum(((ar1-np.mean(ar1))**2)/a.size))
  • 方差ndarray.var()
ar1=np.array([1,3,5,6,8])
ar1.var
  • 最大 ndarray.max()和最小ndarray.min()
最大:
m1.max()
m1.max(axis=0)#axis=0列从上往下
m1.max(axis=1)#axis=1行从左往右
最小:
m1.min()
求和:
m1.sum()
  • 加权平均数
    在这里插入图片描述
    在这里插入图片描述
xiaoming=np.array([80,90,95])
xiaogang=np.array([95,90,80])
#权重
weights=np.array([0.2,0.3,0.5])
#加权平均值
np.average(xiaoming,weights=weights)
np.average(xiaogang,weights=weights)

变异系数:当需要比较两组数据大小的时候,如果两组数据的测量尺度相差太大,或者数据量纲的不同,直接使用标准差来进行表示比较不合适,此时应该消除尺度和量纲的影响,而变异系数可以做到这一点,它是原始数据标准差与原始数据平均数的比
在这里插入图片描述

#股票信息
stat_info=np.array([
              [110.93,16.46,0.2376,0.0573],
              [-0.13,31.01,0.1188,0.0836],
              [8.94,26.67,0.0565,0.0676],
              [17.24,19.53,0.1512,0.0433],
              [43.86,-10.14,0.097,0.0421],
              [-15.34,-13.04,0.0902,0.0732],
              [-20.82,-23.37,0.0582,0.1091]
])
#先计算7年的期望值(平均值)
stat_mean=np.mean(stat_info,axis=0)
#计算7年的标准差
stat_std=np.std(stat_info,axis=0)
#变异系数=原始数据标准差/原始数据平均数
stat_std/stat_mean

数据类型

在这里插入图片描述

将数组类型存储为浮点型
a=np.array([1,2,3,4],dtype=np.float64)
  • 定义结构化数据

随机函数

在这里插入图片描述

  • numpy.random.rand(d0,d1,…,dn)

rand函数根据给定维度生成(0,1)之间的数据,包含0,不包含1 dn表示每个维度 返回值为指定维度的array

from matplotlib import pyplot as plt
a=np.random.rand(10000)
print(a)
plt.hist(a)

在这里插入图片描述

  • numpy.random.randn(d0,d1,…,dn)
from matplotlib import pyplot as plt
a=np.random.randn(10000)
print(a)
plt.hist(a)

在这里插入图片描述

  • numpy.random.randint()

numpy.random.randint(low,high=None,size=None,dtype=‘1’)
返回随机整数,范围区间在[low,high),包含low,不包含high
参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型
high没有填写时,默认生成随机数的范围是[0,low)

在这里插入图片描述

  • numpy.random.sample(size=None)

返回半开区间的随机浮点数[0.0,1.0]

在这里插入图片描述

  • 随机种子np.random.seed()

使用相同seed()值,则每次生成的随机数都相同,使得随机数可以预测
但是,只在调用的时候seed()一下并不能使生成的随机数相同,需要每次都调用seed()一下,表示种子相同,从而随机数相同
在这里插入图片描述

  • 正态分布numpy.random.normal

在这里插入图片描述

数组的其他函数

在这里插入图片描述

  • numpy.resize()

numpy.resize()返回指定形状的新数组
numpy.resize(arr,shape)和ndarray.resize(shape,refcheck=False)区别:
numpy.resize(arr,shape),有返回值,返回复制内容。如果维度不够,会使用原数组数据补齐。
ndarray.resize(shape,refcheck=False),修改原数组,不会返回数据,如果维度不够,会使用0补齐

a=np.array([[1,2,3],[4,5,6]])
print('数组a:',a)
print('a数组形状:',a.shape)

b=np.resize(a,(3,3))
a.resize((3,3),refcheck=False)
  • numpy.append(arr,values,axis=None)
a=np.array([[1,2,3],[4,5,6]])
print(np.append(a,[[7,8,9]],axis=0))
print(np.append(a,[[2,2,2],[7,8,9]],axis=1))

在这里插入图片描述

  • numpy.insert(arr,obj,value,axis)

arr:要输入的数组
obj:表示引值,在该索引值之前插入values值
values:要插入的值
axis:指定的轴。如果未提供,则输入数组会被展开为一维数组

a=np.array([[1,2],[3,4],[5,6]])
#不提供按照数组展开
print(np.insert(a,3,[11,12]))
#沿轴0垂直方向
print(np.insert(a,1,[11],axis=0)
#沿轴1水平方向
print(np.insert(a,1,11,axis=1))

在这里插入图片描述

  • numpy.delete(arr,obj,axis)

arr:要输入的数组
obj:整数或者整数数组,表示要被删除数组元素或者子数组
axis:沿着哪条轴删除子数组
注意:不提供axis参数,则输入数组被展开为一维数组

a=np.arange(12).reshape(3,4)
#a数组
print(a)
#不提供axis参数情况
print(np.delete(a,5))
#删除第2列
print(np.delete(a,1,axis=1))

a=np.array([1,2,3,4,5,6,7,8,9,10])
#删除多行
print(np.delete(a,[1,2,3,4]))
  • numpy.argwhere()

返回数组中非0元素的索引,若是多维数组则返回行,列索引组成的索引坐标

x=np.arange(6).reshape(2,3)
print(x)
#返回所有大于1 的索引
y=np.argwhere(x>1)
print(y,y.shape)

相关文章:

  • MATLAB | 全网唯一,双变量及三变量映射图表的MATLAB绘制
  • 分布式 | 从 dble 日志分析到 MySQL 源码学习
  • 天呐,我居然可以隔空作画了
  • 【面试】软件自动化测试岗位面试题和答案
  • 氨基功能化离子液体修饰SBA-15(NH2-IL-SBA)|含有烯丙基的离子液体氯化1-烯丙基-3-甲基咪唑(AMIMCl)
  • 【c ++ primer 笔记】第 14章 重载运算符
  • Nginx+Tomcat负载均衡、动静分离集群
  • Linux入门学习 —— 常用的基本命令(下)
  • 11、Java 变量作用域、构造方法官方教程
  • NumPy的常用函数
  • 字符串常量池与StringBuilder
  • 时间序列中的特征选择:在保持性能的同时加快预测速度
  • 谷粒商城 (九) --------- 前端基础 Vue 篇
  • MySQL锁机制详解-表锁与行锁
  • mysql行锁,表锁,间隙锁
  • Google 是如何开发 Web 框架的
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • axios 和 cookie 的那些事
  • extjs4学习之配置
  • gitlab-ci配置详解(一)
  • nginx 配置多 域名 + 多 https
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Spring声明式事务管理之一:五大属性分析
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 探索 JS 中的模块化
  • 写代码的正确姿势
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​如何在iOS手机上查看应用日志
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #NOIP 2014# day.1 T2 联合权值
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (九)信息融合方式简介
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .describe() python_Python-Win32com-Excel
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .net 中viewstate的原理和使用
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • @EnableWebMvc介绍和使用详细demo
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [Angular 基础] - 数据绑定(databinding)
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [BZOJ] 2044: 三维导弹拦截
  • [c]扫雷
  • [EFI]Dell Latitude-7400电脑 Hackintosh 黑苹果efi引导文件