基于python的初步数据分析

数据分析的常用数据库

     numpy,pandas,matplotlib是我们进行数据分析的常用数据库

数据库的下载

进入终端使用pip install numpy命令进行数据库的安装以及下载

numpy数据库的使用

首先学习numpy的数组创建,我们可以通过以下方法进行数组的创建

1、np.array( )可以进行数组的创建()内部输入正确的数组或者是元组,经过输出,元素间用空格分割

import numpy as np
x = np.array([[1,2],[3,4]])
print(x)

​

输出结果

2、np.arrange(n)生成0至n-1的数组

3、np.ones(shape)生成一个全1数组,shape为元组类型

4、np.zeros(shape)生成一个全0数组,shape为元组类型

5、np.full(shape,val)生成一个数组,全为val

6、np.eye(shape)生成一个n*n的单元对角矩阵

import numpy as np
a = np.ones((4, 3))
print(a)
b = np.zeros((4, 3))
print(b)
c = np.arange(5)
print(c)
d = np.full((4, 3),5)
print(d)
e = np.eye(3)
print(e)
f = np.ones((2, 3, 4))
print(f)

输出结果如下

7、np.ones_like(a)根据a生成一个全为1的数组

8、np.zeros_like(a)根据a生成一个全为0的数组

9、np.full_like(a,val)根据a生成一个全为val的数组

10、np.linspace()根据起止数据等间距的填充

11、np.concatenate()将两个或者多个数组进行合并

import numpy as np

a = np.ones((4, 3))
print("a:", a)
b = np.zeros((4, 3))
print("b:", b)
g = np.ones_like(a)
print("ones", g)
g = np.zeros_like(a)
print("zeros:", g)
g = np.full_like(a, 5)
print("full:", g)
g = np.linspace(1, 10, 4)
print("linspace:", g)
g = np.linspace(1, 10, 4,endpoint=False)
print("linspace(endpoint):", g)
g = np.concatenate((a, b))
print("concatenate:", g)

输出如下

数组变换

1、x.reshape(shape)不改变内部元素,只改变形状(要求元素个数相同)

2、x.resize(shape)和reshape功能一致,只是resize可以同时改变原数组

3、x.swapaxes(ax1,ax2)交换两个维度

4、x.f;attten()返回折叠后的一维数组,原数组不变

import numpy as np

a = np.ones((4, 3))
print("a:", a)
g = a.reshape((3, 4))
print("reshpe(a):", a)
print("reshape", g)
a.resize((3, 4))
print("resize", a)
g = a.flatten()
print("flatten(a):", a)
print("flatten:", g)
a = a.swapaxes(0,1)

print("swapaxes:", a)

输出结果

数组的类型变换

数组内数据类型变换  new_a = a. astype(new_type)

import numpy as np
a = np.ones((2,3,4),dtype = np.int32)
print("a:",a)
b = a.astype(np.float32)
print("a:",a)
print("b:",b)

输出结果如下

数组---->列表

ls = a.tolist()

ndarray数组的操作

索引和切片(切片终止编号不含)
import numpy as np
a = np.array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
print(a[2])
print(a[0:9:2])

输出结果如下:

多维数组的索引
import numpy as np
a = np.arange(24).reshape((2, 3, 4))
print("a:", a)
print(a[1, 2, 3])
print(a[-1, -2, -3])

输出结果如下:

多维数组切片
import numpy as np
a = np.arange(24).reshape((2, 3, 4))
print("a:", a)
print(a[:, 1, -3])
print(a[:, :, ::3])

输出结果如下:

ndarray数组的计算

1、np.abs(x),np.fabs(x)计算各元素的绝对值

2、np.mean(x)平均值

3、np.sqrt(x)各元素的平方根

4、np.square(x)各元素的平方

5、np.log(x),np.log10(x),np.log2(x)对数

6、np.ceil(x),np,floor(x)计算ceiling/floor值{ceiling:不超过元素的最大整数,floor:小于该元素的最大整数}

7、np.rint(x)四舍五入

8、np.modf(x)以小数和整数以两个独立数组形式返回

9、np.cos(x)三角函数

10、np.exp(x)指数值

11、np.sign(x)计算数组各元素符号值{1(+),0,-1(-)}

二元函数

np.maximum(x,y)  np.fmax()最大值计算

np.minimum(x,y)  np.fmin()最小值计算

np.mod(x,y)模运算

np.copysign(x,y)将y中元素符号赋给x对应元素

matplotlib库的应用(后续补齐)

sin、cos函数图
from pylab import *
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)

plt.plot(x, c)
plt.plot(x, s)

show()

输出结果:


plot()函数:plot([x], y, [fmt], data=None, **kwargs)

其中可选参数[fmt]是一个字符串,用于定义图的基本属性:颜色(color)、点型(marker)、线型(linestyle)
具体形式为:fmt = [color][marker][linestyle],注意这里的三个属性只能是每个属性的单个字母缩写,若属性用的是全名则不能用[fmt]参数来组合赋值
**kwargs可用参数:x: x轴数据   y: y轴数据   linewidth: 线宽   

color:线条颜色

'b' 蓝色  'r'红色  'g'绿色  'w'白色   'k'黑色

marker:标记风格

'.'点标记  ','像素标记

linestyle:线条格式

'-' 实线   '--'破折线  ':'虚线

from pylab import *
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c, 'g|:')
plt.plot(x, s)

show()

输出结果:

设置图的横纵坐标的上下界:

xlim(), ylim()

pandas库的应用

series对象(一维)  DataFrame对象(二维)

用Series()创建对象

    data 输入的数据,可以是列表、常量、ndarray数组等

   index索引必须唯一的,若没有,默认为np.arrange(n)

   dtype数据类型

   copy拷贝,默认为False

位置索引:S[0:2:1]含头部不含尾

标签索引:S["a":"b"]含头又含尾

方法:head()查看某一部分数据,默认前五行

tail()返回的为后n行数据,默认为后五行

isnull()若不存在或缺失,返回True

notnull()若不存或缺失,则为False

DataFrame()

比Series属性多了一个columns列标签

多的方法:

describe()产生每列汇总,产生多个汇总统计

median()每列中位数

count()统计非NaN数量

min()该列最小值

max()该列最大值

mean()每列平均

导入Excel数据

pd.read_x() 

pd.DataFrame.to_x()   {x为所要用到的文件类型例如:excel,csv等}

pd.read_excel(io,sheet_name,header,index_col,usecols)

io:excel路径

sheet_name:工作表名

header:指定行为列名

index_col:指定列为行名

usecols:是否需要读所有列

usecols=nrows  nrows需要读取的行类

导入CSV数据

io,index_col,usecols都有

sep:分隔符,默认为',',导入其他txt数据,sep可设为可设为‘\t’

encodin:设置读写文本文件时所用编码行使

encoding-errors:出现错误时的处理方式,默认为'strict'

导出

pd.DataFrame.to_x()

参数:

excel_writer  文件路径/Excelwriter对象(要写入的名字)‘

sheet_name:工作表名

na_rep:缺失值的表现形式

float_format:设浮点数的输出形式

columns:指定要写入的列

header:写入每列名称,若为字符串列表,则为列的别名

index:要写入的索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值