数据分析

简介: 数据分析

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)


相关文章
|
2月前
|
数据采集 监控 数据可视化
如何进行数据分析
如何进行数据分析
32 2
|
2月前
|
数据采集 SQL 数据可视化
数据分析的要求
数据分析的要求
61 2
|
5月前
|
数据采集 存储 数据挖掘
数据分析
【6月更文挑战第16天】数据分析。
45 6
|
6月前
|
数据采集 机器学习/深度学习 人工智能
数据分析与理解
数据分析与理解
68 3
|
搜索推荐 数据挖掘
数据分析场景
数据分析场景
|
数据采集 SQL 算法
【数据分析】:什么是数据分析?
【数据分析】:什么是数据分析?
【数据分析】:什么是数据分析?
|
数据挖掘 Windows
数据分析的前世今生
数据分析的前世今生
96 0
|
数据采集 XML 存储
C++数据分析的应用
C++是一种功能强大的编程语言,提供高性能、高效性和灵活性,适用于各种应用程序。其中,数据分析是C++的一个重要领域,涉及大量数据的收集、处理和解释。C++可以有效处理使用HTTP、FTP、JSON、XML等各种协议和格式的网络通信和数据采集任务。
281 0
|
数据采集 机器学习/深度学习 人工智能
数据分析--数据分析是什么?
数据分析--数据分析是什么?
230 0
|
SQL 机器学习/深度学习 运维
聊聊数据分析
聊聊数据分析
159 0