当前位置 : 主页 > 编程语言 > java >

数据分析

来源:互联网 收集:自由互联 发布时间:2022-06-30
numpy数组操作 创建维数组 m = np . array ([ np . arange ( 2 ), np . arange ( 2 )]) 选择numpy数组元素 numpy数值类型 np . float64 ( 42 ) np . int8 ( 42.0 ) np . bool ( 42 ) np . bool ( 0 ) np . bool ( 42.0 ) np . float ( Tru

numpy数组操作

创建维数组

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

选择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)

ravel():将多维数组变成一维数组
flatten():同ravel()功能相同,区别ravel返回视图,flatten返回真实数组
transpose():转置
resize():跟reshape()

堆叠数组

vstack():

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

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)

vsplit()
dsplit():

np.dsplit(c,3)

split():

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

数组属性

数据分析_数据
ndim:维度
size:元素数量
itemsize:各个元素占用字节数
nbytes:
T:transpose()

pandas

统计量
数据分析_数据_02

数据聚合

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')

处理缺失数据

pd.isnull(df)
df.notnull()
df.fillna(0)

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))

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)


上一篇:时间序列分析
下一篇:没有了
网友评论