数据分析

简介: 数据分析

numpy数组操作


创建维数组


m=np.array([np.arange(2),np.arange(2)])
• 1


选择numpy数组元素


numpy数值类型


np.float64(42)
np.int8(42.0)
np.bool(42)
np.bool(0)
np.bool(42.0)
np.float(True)
np.float(Flase)


数据类型对象


一维切片和索引


a=np.arange(9)
a[3:7]
out:array([3,4,5,6])
a[:7:2]
out:array([0,2,4,6])
a[::-1]
out:array([8,7,6,5,4,3,2,1,0])


改变阵列形状


b=np.arange(24).reshape(2,3,4)
• 1


ravel():将多维数组变成一维数组


flatten():同ravel()功能相同,区别ravel返回视图,flatten返回真实数组

transpose():转置

resize():跟reshape()


堆叠数组


vstack():


a=np.arange(9).reshape(3,3)
b=2*a
np.vstack((a,b))
• 1
• 2
• 3


dstack():深度叠加


np.dstack((a,b))
out:array([[[0,0],
            [1,2],
            [2,4]],
           [[3,6],
            [4,8],
            [5,10]],
           [[6,12],
            [7,14],
            [8,16]]])

hstack():


np.hstack((a,b))
out:array([[0,1,2,0,2,4],
           [3,4,5,6,8,10],
           [6,7,8,12,14,16]])


column_stack():类似于hstack()

row_stack():类似于vstack()

concatenate():


np.concatenate((a,b),axis=1)
out:array([[0,1,2,0,2,4],
           [3,4,5,6,8,10],
           [6,7,8,12,14,16]])

拆分numpy数组


hsplit():

np.hsplit(a,3)
• 1

vsplit()

dsplit():


np.dsplit(c,3)
• 1

split():

np.split(a,3,axis=0)
• 1


数组属性

20210427143243279.png


ndim:维度

size:元素数量

itemsize:各个元素占用字节数

nbytes:

T:transpose()


pandas


统计量

20210427144314670.png


数据聚合


weather_group=df.groupby('weather')
i=0
for name,group in weather_group:
  i=i+1
  print("group",i,name)
  print(group)
df.groupby(['weather','food'])
df.groupby(['weather','food']).agg([np.mean,np.median])  


连接DataFrames


pd.merge(data1,data2,how='inner,outer')
• 1


处理缺失数据


pd.isnull(df)
df.notnull()
df.fillna(0)
• 1
• 2
• 3


pd.merge()


pd.merge(data1,data2,left_on=’’,right_on=’’,how=’’)

left_on ,right_on类似于SQL a.id=b.id

how类似于SQL中选择连接join的方式


reindex


reindex 使数据对象符合新的索引,如果索引的值不存在就填入缺失值


import pandas as pd 
data=pd.Series([4.5,7.2,-5.3,3.6],index=['d','b','a','c'])
out:
d  4.5
b  7.2
a -5.3
c  3.6
data1=data.reindex(['a','b','c','d','e'])
out:
a   -5.3
b    7.2
c    3.6
d    4.5
e    NaN
data2=data.reindex(['a', 'b', 'c', 'd', 'e'], fill_value=0)
out:
a   -5.3
b    7.2
c    3.6
d    4.5
e    0.0


assign(**kwargs)


为DataFrame分配新列

返回一个新对象,该对象包含除新列之外的所有原始列


df = pd.DataFrame({'temp_c': [17.0, 25.0]},
                index=['Portland', 'Berkeley']) df
          temp_c
Portland    17.0
Berkeley    25.0
df.assign(temp_f=lambda x: x.temp_c * 9 / 5 + 32)
          temp_c  temp_f
Portland    17.0    62.6
Berkeley    25.0    77.0


数据透视表


print(pd.pivot_table(df,cols=['food'],aggfunc=np.sum))
• 1


cols参数告诉pandas要对哪些列进行聚合运算。


PCA


基于鸢尾花4个特征,探索能不能只使用二列进行变换

PCA步骤:

1.将数据集标准化

2.计算数据集相关矩阵

3.计算相关矩阵对应的特征向量和值

4.基于降序的特征值选择前2个特征向量

5.基于特征向量与原数据标准化后的集乘积得到新的数据集


import numpy as np
from sklearn.datasets import load_iris
from sklearn.preprocessing import scale
import scipy
import matplotlib.pyplpot as plt
data=load_iris()
x=data[0:-2]
y=data[-1]
x_s=scale(x,with_mean=True,with_std=True,axis=0)
x_c=np.corrcoef(x_s.T)
eig_val,r_eig_vec=scipy.linalg.eig(x_c)
w=r_eig_vec[:,0:2]
x_rd=x_s.dot(w)


相关文章
uniapp导航栏组件如何使用
uniapp导航栏组件如何使用
220 0
|
自然语言处理 编译器 C语言
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(1)
语法分析阶段可以发现程序中的所有语法错误;编译正确的程序必然不包含语法错误;“除数为0”为动态语义错误,动态语义错误只有运行时才能发现。
378 0
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(1)
|
11月前
|
前端开发 搜索推荐 安全
你用过最好的CMS网站管理系统?
本文主要介绍了内容管理系统(CMS)的概念、功能和使用场景。CMS是一种位于WEB前端和后端管理前端内容的软件系统,用于发布、修改、审批、发布内容。文章提到,内容管理系统在满足个性化需求和提高工作效率方面有显著优势。
1205 1
|
Ubuntu Linux Python
UserWarning: Glyph 27668 (\N{CJK UNIFIED IDEOGRAPH-6C14}) missing from current font.
UserWarning: Glyph 27668 (\N{CJK UNIFIED IDEOGRAPH-6C14}) missing from current font.
977 2
|
NoSQL 关系型数据库 MySQL
Windows、Linux、Mac安装数据库(mysql、MongoDB、Redis)#0
不同系统下进行MySQL安装、MongoDB安装、Redis安装【2月更文挑战第5天】
742 5
Windows、Linux、Mac安装数据库(mysql、MongoDB、Redis)#0
CRC与FCS的区别和联系
CRC与FCS的区别和联系
1067 0
|
机器学习/深度学习 人工智能 文字识别
通用场景OCR文本识别任务-baseline学习(PaddleOCR)
通用场景OCR文本识别任务-baseline学习(PaddleOCR)
533 0
|
域名解析 JSON 网络协议
freeipa安装部署
freeipa是linux的一个开源的安全解决方案,它提供账户管理和集中认证,类似于微软的AD(active directory)。
4115 0
MFC学习之路十三之定时器的使用
MFC学习之路十三之定时器的使用
364 0
|
负载均衡 Java 索引
Spring Cloud:自定义 Ribbon 负载均衡策略
Spring Cloud:自定义 Ribbon 负载均衡策略