python·数据分析基础知识

发布于:2024-07-24 ⋅ 阅读:(134) ⋅ 点赞:(0)

numpy

一个数值计算包

python列表与numpy矩阵区别

  • python中修改列表元素和列表相加

for循环 :[x+1 for x in a]
多个元素需要用zip捆绑[x+y for(x,y) in zip(a,b)]

  • numpy矩阵自动进行相应元素计算

np.array()+1各元素+1
a+b各元素相加
a*b矩阵相乘或者是各元素相乘

numpy矩阵

所有操作默认对行进行

生成方式

以行形式默认生成,也就是行向量

  • 直接生成:a = np.array([1,2,3,4])a = np.array([[0,1,2,3],[10,11,12,13]])
  • 列表中产生数组:a = np.array(l)
  • 其他函数:np.zeros(5) np.ones(5) #括号内传个数,默认浮点数

矩阵属性

  • dtype:np.ones(5,dtype="bool") 数组中要求所有元素的 dtype 是一样的
  • astype:强制类型转换:a = a.astype("float") #强制类型转换
  • 总元素个数:a.size

  • 矩阵维度:a.nidm

索引:

  • 普通索引:a[:,1]类似matlab中的索引操作,不过默认索引的单位是行
  • 列表索引:index = [1,2,-3] y = a[index] print(y)传入列表索引特定行

切片操作:

  • 多维度切片:a[0,3:5]
  • 计算前缀和/差技巧:ob = np.array([21000,21800,22240,23450,25000])
    计算公式:ob2 = ob[1:]-ob[:-1]

函数:

注意这些函数传入参数都是numpy中的矩阵
对于多维数组,函数都是默认对行或者对所有元素进行操作

以下对行元素操作

  • argsort函数:np.sort(mv_num)

以下对所有元素操作

  • 求和:np.sum(mv_num)
  • 均值:np.mean(mv_length)
  • 标准差:np.std(mv_length)
  • 相关系数矩阵:np.cov(mv_score,mv_length)注意传入两个行向量

  • 转置:a.T

Pandas

数据分析包,分为两种基本结构

Series 一维数组
DataFrame二维数组

Series

  • 默认生成方式:s = pd.Series([1,3,5,np.nan,6,8])
    在这里插入图片描述

常见函数:

  • 索引设置:s.index = list('abcdef')

因为索引可以不是数值了,所以切片操作更加灵活了

  • 输出数值:s.values

DataFrame

  • 默认生成方式:df = pd.DataFrame(np.random.randn(6,4), index = date, columns = list("ABCD"))

数据集是一个np形式的矩阵,索引和列作为参数给出

常见函数

  • 查看头尾数据:df.head()df.tail(3)默认为5
  • 返回一个np矩阵:df.values

Pandas读取和保存操作

  • 读取excel表格,把index和column也读取进来:df = pd.read_excel(r"C:\Users\Lovetianyi\Desktop\python\作业3\豆瓣电影数据.xlsx",index_col = 0)
  • 存放至当前文件夹:df.to_excel("movie_data.xlsx")

*索引操作

注意pandas不调用iloc函数默认使用列索引

  • 行索引:df.iloc[0:5]
  • 列索引:df["名字"][:5] 和`df[[“名字”,“类型”]][:5]
  • 条件索引:df[df["产地"] == "美国"][:5]df[(df.产地 == "美国") & (df.评分 > 9)][:5]

条件索引返回满足列条件的行,列索引返回的是对应列

*缺失值处理

排序操作

df.sort_values(by = "投票人数", ascending = False)[:5] #默认从小到大注意dataframe结构的构成,中间的矩阵都是values

统计分析

描述性分析:df.describe()

给出一系列基本的统计值

统计性的函数

pandas默认对列进行求值,这点于numpy不同

在这里插入图片描述

Matplotlib可视化

matplotlib.pyplot包含一系列类似MATLAB中绘图函数的相关函数

绘图函数

  • 显示图片:plt.show() 一般不会直接显示图

绘制函数:plt.plot([1,2,3,4],[1,4,9,16],linewidth = 4.0,"ro") **

  • 属性如下:
    • 线条属性
    • 字符和类型属性
  • 提前修改属性:plt.setp(line,“color”,‘r’,“linewidth”,4)
    在这里插入图片描述
  • 指定坐标轴:plt.axis([xmin, xmax, ymin, ymax])
  • 支持传入多张图:`

子图

figure是窗口,subplot是子图,

  • 子图figure:plt.figure(num)
    这里,figure(1)其实是可以省略的,因为默认情况下plt会自动产生一幅图像。
t1 = np.arange(0.0,5.0,0.1)
t2 = np.arange(0.0,4.0,0.02)

plt.figure(figsize = (10,6))
plt.subplot(211)
plt.plot(t1,f(t1),"bo",t2,f(t2),'k') #子图1上有两条线

plt.subplot(212)
plt.plot(t2,np.cos(2*np.pi*t2),"r--")
plt.show()

具有统计意义图像绘制

直接看笔记查对应参数


网站公告

今日签到

点亮在社区的每一天
去签到