数据分析 day02(一)

2. N维数组对象

2.6 数组切分

切分就是把一个数组切成多个

先生成一个5x6的二维数组,数组里的元素为[0,20)的随机数
在这里插入图片描述

2.6.1 水平方向上的切分 hsplit()

在这里插入图片描述

水平方向上切分切的是列标,列数是从0开始的

想象一下切东西,切一刀分成了两部分
在第一列前切一刀,将第0列和后面的分开了,这时候成了两部分;
在第二列前切一刀,将第1列和后面的又分开了,这时候就成了3部分
第8列前切一刀,而这里只有第5列,这一刀切的是空的,所以这里有个空元组
在这里插入图片描述

2.6.2 垂直方向的切分 vsplit()

在这里插入图片描述

垂直方向上的切分,相当于切行标
在这里插入图片描述

hsplit和vsplit只适合于二维数组

2.6.3 split()方法

split方法可以切分任意维度的数组

nd1 是一个三维数组,2x3x4格式,元素为[0,20)的随机整数,axis表示维度

切第0个维度,第0个维度只有0,1两部分,在第1个部分前切一刀,然后在第2个部分前切一刀,但是这里没有第2部分,所以有1个元组为空,切两刀有3个模块在这里插入图片描述

将维度变为第一维度axis=1在这里插入图片描述

2.7 副本

首先要清楚一个概念:浅拷贝和深拷贝
在这里插入图片描述
p中有一个变量a,p中存的是a的地址a1,p’拷贝的时候,拷贝的只是地址,这叫浅拷贝,浅拷贝修改a1’,a中不会
发生变化,显示的内容还是a
p’‘是深拷贝,将变量a中的内容复制并新创了一个存储空间a’,修改a1’’,会修改a’的内容,显示的内容就是a’

相互赋值直接修改元素
在这里插入图片描述

产生副本是一种浅拷贝,并没有修改原有数据
在这里插入图片描述

由列表创建数组,首先会把列复制出一个副本,然后把副本中的内容类型统一化,然后再存入数组

在这里插入图片描述

堆操作

向量:
一个一维数组中有n个元素,我们成这个一维数组是一个n空间维行向量,
一个n行一列的二维数组我们称为一个n维空间的列向量

vstack将一个一维数组转化成一个列向量

在这里插入图片描述

hstack把任意一个数组转成行向量

在这里插入图片描述

2.8 聚合

聚合操作指的就是对数组内部的数据进行某些特征(比如:均值、方差等)的求解

常见的聚合操作:

Function NameNaN-safe VersionDescription
np.sumnp.nansumCompute sum of elements
np.prodnp.nanprodCompute product of elements
np.meannp.nanmeanCompute mean of elements
np.stdnp.nanstdCompute standard deviation
np.varnp.nanvarCompute variance
np.minnp.nanminFind minimum value
np.maxnp.nanmaxFind maximum value
np.argminnp.nanargminFind index of minimum value
np.argmaxnp.nanargmaxFind index of maximum value
np.mediannp.nanmedianCompute median of elements
np.percentilenp.nanpercentileCompute rank-based statistics of elements
2.8.1 常见的聚合操作

首先先创建一个一维数组,元素个数为10,每个元素[0,20)的一个随机整数
在这里插入图片描述

  1. sum()求和
    两种方式,同样的效果
    在这里插入图片描述
  1. prod()求积
    在这里插入图片描述
  1. mean()求均值
    在这里插入图片描述
  1. std()求标准差、var()求方差
    一列数:a1,a2,…,an
    方差:m = (a1+a2+…+an)/n var = [(a1-m)2+…+(an-m)2]/n
    标准差:std = var^0.5
    标准差和方差反映的是这列数据的稳定性,方差或者标准差越大数据越不稳定,反之越稳定
    在这里插入图片描述
  1. min()、max()、argmin()、argmax()求最值
    在这里插入图片描述
  1. media()和percentile()
    在这里插入图片描述

中位数:数组从小到大排排序
2 3 3 5 9 10 13 15 18 18
如果是偶数个取中间两个数的平均值,如果是奇数个取中间那个数

百分比位数: 比如50,表示50%,这组数的中间位置的数的大小是9.5,也就是中位数的值;
60,表示60% ,这组数60%的位置的数的大小该是11.2

2.8.2 Nan-safe版的聚合操作

numpy中的nan
在这里插入图片描述
那么这个nan怎么进行聚合操作呢?求和,求平均直接忽略跳过就行了
在这里插入图片描述

2.8.3 多维数组聚合
1 普通聚合

就是把数组中所有数据聚合在一起,最终计算出这个数组的某种数据内部特征,是一个常数

把所有元素相加或者求平均值
这是一个3x4的二维数组在这里插入图片描述
2x3x4的三维数组也是一样
在这里插入图片描述

2 指定维度聚合

axis参数可以指定对哪个维度进行聚合
指定维度聚合就是把axis指定的那的维度的子元素聚合在一起,axis值等于哪个维度,这个维度就会消失,取而代之的是这个维度上的子元素聚合的结果

首先看一下这个数组,这是一个3x4的二维数组
在这里插入图片描述

  1. 对第0个维度进行聚合,加操作
    在这里插入图片描述
    对下标进行相加 比如: 15+9+2 =26
  2. 对第0个维度进行聚合,求最大值
    在这里插入图片描述
  3. 对第1个维度进行聚合,求和,最大值
    在这里插入图片描述
    15+9+2+17 =43
    [15, 9, 17, 2]中最大值为17

这是一个2x3x4的三维数组
在这里插入图片描述

  1. 第0个维度时
    聚合求相加,为对应的下标的和
    在这里插入图片描述
    在这里插入图片描述
  2. 第一个维度时
    聚合求相加,
    在这里插入图片描述
    这个时怎么相加得到的结果呢?第一个维度下,有3个子块
    在这里插入图片描述
    三个子块对应的下标相加
    在这里插入图片描述
  3. 第2个维度时
    聚合求相加,
    在这里插入图片描述
    这个又是怎么得到的呢?
    在这里插入图片描述
    11+0+11+17=39
    最后变成了一个2x3的二维数组
思考题:给定一个4维数组,如果求最后两个维度的和

这是一个2x3x4x5的四维数组,元素为[0,50)之间的随机整数
在这里插入图片描述
提示是这句话:axis参数可以指定对哪个维度进行聚合
指定维度聚合就是把axis指定的那的维度的子元素聚合在一起,axis值等于哪个维度,这个维度就会消失,取而代之的是这个维度上的子元素聚合的结果

首先分析一下
在这里插入图片描述

法一:取最后一个维度,取两次
在这里插入图片描述
法二:取倒数两个维度
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值