np.sum 与x.shape

 1.np.sum(a, axis=1, keepdims=True)

axis=1 以竖轴为基准 ,同行相加
keepdims主要用于保持矩阵的二维特性
在这里插入图片描述

2.X.shape

进入python,我们输入以下语句

>>>import numpy as np
>>>a=np.array([0,1,2,3])
>>>b=np.array([[0],[1],[2],[3]])
>>>c=np.array([[0,1,2,3]])
>>>a.shape
(4,)
>>>b.shape
(4, 1)
>>>c.shape
(1, 4)


分析:
a.shape说明数组a的维数是1,其中有4个元素
b.shape说明数组b的维数是2,每行1个元素,有4行
c.shape说明数组c的维数是2,每行4个元素,有1行
 

注意;

shape[0]理解为第一维,shape[1]理解为第二维,同理还有shape[2]、shape[3]等等 。
举个栗子就是:a=array( [ [ [1,2,3] , [4,5,6] ] ] ),这是个三维数组,a.shape[0]=1, a.shape[1]=2, a.shape[2]=3 

from numpy import *
a=array( [ [ [1,2,3] , [4,5,6] ] ] )
a.shape[0]
1
a.shape[1]
2
a.shape[2]
3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据分析 数据分析——数据校验 数据校验   很多时候在数据分析之前,我们需要对样本进⾏校验,以确定样本的价值。   先写⼊数据: import pandas as pd import numpy as np df = pd.DataFrame({'⼀班':[90,80,66,75,99,55,76,78,98,None,90], '⼆班':[75,98,100,None,77,45,None,66,56,80,57], '三班':[45,89,77,67,65,100,None,75,64,88,99]}) 1完整性校验 完整性校验 # 判断是否为缺失值(空值) df.isnull() # 统计出每⼀列的缺失值数⽬ df.isnull().sum() # 每⼀列缺失⽐例 df.isnull().sum()/df.shape[0] # 判断⾮空值的数⽬ df.notnull().sum()   笔记:这⾥也可以⽤到describe⽅法,如下: # 使⽤describe⽅法查看数据的完整性,统计出了⾮空值的数⽬ df.describe().iloc[0,:]   忘了describe⽅法的话,请查看《》 2时间跨度检验 时间跨度检验   很多样本的时间数据并不是以datatime64类型存储的,此时我们得先进⾏"数据类型修改"   详见:《》的4.3数据修改   之后进⾏最⼤最⼩相减就OK了。 print(date.max()-date.min()) 3重复检验 重复检验 # ⼆班和四班是相同的 df1 = pd.DataFrame({'⼀班':[90,80,66,90,99,55,76,90,98,None,90], '⼆班':[75,98,100,75,77,45,None,75,56,80,57], '三班':[45,89,77,45,65,100,None,45,64,88,99], '四班':[75,98,100,75,77,45,None,75,56,80,57]}) 3.1样本重复检验(⾏) 样本重复检验(⾏) DataFrame.drop_duplicates(subset=None, keep='first', inplace=False) subset:表⽰以这⼏个特征为基础,对整体样本进⾏去重。默认为使⽤所有特征 keep:表⽰保留第⼏个重复的样本。只允许填⼊first(保留第⼀个),last(保留最后⼀个),False(只要存在重复均不保留)。默认为first inplace:表⽰是否在原DataFrame上进⾏操作,会改变原数据。默认为False # 删除重复样本(⾏) df1.drop_duplicates() # 计算样本重复率 (df1.shape[0] - df1.drop_duplicates().shape[0])/df1.shape[0] 3.2特征重复检验(列) 特征重复检验(列)   特征重复检验相⽐样本重复检验要⿇烦⼀点,因为没有现成的函数可调⽤。   需要⽤到相似度的概念,如下: pearson相似度 spearman相似度 kendall相似度 # 使⽤pandas的⽅法:DataFrame.corr(method='pearson') asso = df1.corr() # 输出asso,看⼀下是怎样的先 print(asso)   不难看出,这是⼀个对称矩阵,所以我们只需要判断右上半⾓的数据便可。 # 输出应删除的columns,1.0可根据需求改动 delCol = [] for i in range(len(asso)): for j in range(i+1,len(asso)): if asso.iloc[i,j] == 1.0: delCol.append(asso.columns[j]) print(delCol) 最后,附上⼀段 特征重复检验 的⾃定义代码: # 输⼊DataFrame,输出特征重复的列名,可直接复制调⽤ def drop_features(data,way = 'pearson',assoRate = 1.0): ''' 此函数⽤于求取相似度⼤于assoRate的两列中的⼀个,主要⽬的⽤于去除数值型特征的重复 data:数据框,⽆默认 assoRate:相似度,默认为1 ''' assoMat = data.corr(method = way) delCol = [] length = len(assoMat) for i in range(length): for j in range(i+1,length): if asso.iloc[i,j] >= assoRate: delCol.append(assoMat.columns[j]) r

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值