数据科学与大数据分析workshop 笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxxjxw/article/details/89075645

1、python各种函数包的由来

     首先python是一门开源的,有广泛社群支持的语言。比如我想求一个线性回归,要算矩阵求逆或者矩阵相乘,但这个矩阵的求逆,或者矩阵的相乘,肯定不是我一个人碰到,那既然大家都需要用python来解决这个问题,那我就看看大家有没有好的方法,那在网上一搜,发现别的在做某些分析的时候也用到了矩阵求逆,那我就把它的方式借鉴过来,或者直接把他的代码粘过来就可以用。随着这样的共享越来越多,也就构成了我们开源的一个社群,当在做非常高层的分析的时候,发现这个世界不止我一个人在做,前面已经有很多人需要这样的算法。会有前人已经用过了,那么他们在用的时候就会发现,哎呀,这个方法如果不把他写成代码很麻烦,写完了之后呢觉得这个未来可能还有人用,于是呢,他就总结成了一套函数库,放到了网上。

2、python的数据科学函数包

       numpy,对数值以及高维数组进行计算管理的一个非常好用的一个函数包,里面包含了一系列非常常用的数据处理方面的函数,可谓是python里面做数据科学的重中之重,核心之核心
       pandas,可以理解为python里面的excel表格,他可以对数据进行管理以及一些统计计算,pandas的开发其实依托于numpy (python data analisis library) 
       matplotlib,绘图(让结果可视化    )

       seaborn,依托于matplotlib的python可视化库,可以让数据可视化更加的方便、美观,让图画得更好看


      要注意的是一旦导入了seaborn,matplotlib的默认作图风格就会被覆盖成seaborn的格式,seaborn相比于matplotlib拥有更好的默认风格

3、将可选的函数列表弄出来——tab键

4、看函数具体的参数信息——鼠标光标移进去,shift+tab

---------------------------------------------numpy---------------------------------------------------------

5、np.zeros(n) / np.zeors(n,n)      np.ones(n) / np.ones(n,n)

np.linspace(0,10,3)    线型空间切割

        以0为初始,以为10截止,把这个线段平均分成3个点(2个部分) 

np.eye(n)  生成n维单位矩阵

np.random.rand() / np.random.rand(n,n)   生成一个0-1的随机数(小数)/ 生成一个n行n列的

np.random.randint(n,m)  生成一个n-m的随机整数

np.random.seed(50)

     np.random.randint(1,100,10)  如果大家的random.seed都是50的话,那么在不同电脑执行这条语句的结果都是一样的

array.max() / min()  求数列最大值

array.argmax() / argmin()  求数列最大值所在的位置

array.reshape(n,m)  把原来的数组变成n行m列的矩阵(注意原来数组的元素必须=n*m)

np.sqrt(arr) / np.exp(arr)   对数组(的每个数)求开方/求幂

6、np.random.rand()和np.random.randn()

  • rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
  • randn函数返回一个或一组样本,具有标准正态分布。

randn生成的值会有大于1的,还有负的

7、python数组的复制,也是指针的复制,修改新数组的值,就数组的值也会跟着变

      用arr2=arr.copy()

8、多维矩阵切割

      直接用坐标选出即可

9、取出数组中大于某个值的数   arr[arr > n]

而如果直接 arr>n ,会返回一个布尔类型的数组

10、为什么np.zeros((5,5)) 这是一个圆括号 ,是一个tuple,而np.random怎么就不加圆括号了呢

      这就体现了numpy作为一个开源函数库,他的好与不好,没有一个统一的规范性的标准

      就可能numpy.ones是一个人开发的,他觉得我如果生成维度的话我可能输入一个tuple,对这个纬度的管控就会更好

      而开发random的人呢,可能会觉得生成一个tuple是没有必要的,就造成了现在的这种现象

----------------------------------------pandas------------------------------------------

11、pandas数据的存储相对来说比较简单,它就只有两种非常重要的数据类型,一种叫series,一种叫dataframe
series是指那些一维的数据,dataframe是指那些二维的数据。也就是说任何一个datafarame其实是好多个series罗列出来的

12、pd.Series(data,index)

13、pd.DataFrame(data,index,columns)

14、做数据科学的时候,往往把feature放在列上,每一列叫做一个feature
        每一行叫做一个observation

像不同的列记录所有人的身高、所有人的体重,所有人的收入,而每一行是一个不同的人

并且如果直接引用的话,会默认选择列

若要选择行  df.loc('A')

15、添加列

删除列 df.drop('new',axis)         //0是指行的维度,1是指列的维度

但是这样删除只是返回一个临时的结果,实际df中并没有删除列,这是相当于一个double check的机制。可以不在原数据进行操作,df2=df.drop('new',axis)     

如果的确要删的话 df.drop('new',axis=1,inplace= True)

16、选择满足相关条件的数据

     选择W列的值大于0的数据

    选择W列的值大于0的数据的Y的数据

 选择W列的值大于0并且Y列的值大于1的数据

 17、将另一列的数据当做行名

df.set_index('state')

同样,如果确定要修改,还需要 df.set_index('state',inplace=True)

18、将数据转化成DataFrame

19、分组计算

  平均值

  最大值

  标准差  //standard deviation

能计算的都给你计算一遍

------------------------------------ Matplotlib---------------------------------------------

20、让matplotlib画的图显示出来

21、绘图

改变颜色    plt.plot(x,y,'r')

横轴名称  plt.xlabel('X axis')

纵轴名称  plt.ylabel('Y axis')

图像标题  plt.title('First figure')  

画子图  sublplot

一个画布上画多个图

 fig = plt.figure() 是在告诉你我准备画画了,现在已经有一块木头的画板已经立起来了

axes1 = fig.add_axes([0.1,0.1,0.8,0.8])   是说我在木头的画板上已经贴了一张纸了,这张纸距离左边框10%的单位,距离右边框,10%的单位,总长度80%的单位,总宽度80%的单位
axes2 = fig.add_axes([0.2,0.5,0.4,0.3])   然后再贴第2张纸

然后说每张纸上画什么

一张图上画多条线 +  图例

LaTex数学排版语言,python里面也能用

22、终极小笔记

所有线型,以及绘线可调控可操作的参数

fig, ax = plt.subplots(figsize=(12,6))

ax.plot(x, x+1, color="red", linewidth=0.25)
ax.plot(x, x+2, color="red", linewidth=0.50)
ax.plot(x, x+3, color="red", linewidth=1.00)
ax.plot(x, x+4, color="red", linewidth=2.00)

# possible linestype options ‘-‘, ‘–’, ‘-.’, ‘:’, ‘steps’
ax.plot(x, x+5, color="green", lw=3, linestyle='-')
ax.plot(x, x+6, color="green", lw=3, ls='-.')
ax.plot(x, x+7, color="green", lw=3, ls=':')

# custom dash
line, = ax.plot(x, x+8, color="black", lw=1.50)
line.set_dashes([5, 10, 15, 10]) # format: line length, space length, ...

# possible marker symbols: marker = '+', 'o', '*', 's', ',', '.', '1', '2', '3', '4', ...
ax.plot(x, x+ 9, color="blue", lw=3, ls='-', marker='+')
ax.plot(x, x+10, color="blue", lw=3, ls='--', marker='o')
ax.plot(x, x+11, color="blue", lw=3, ls='-', marker='s')
ax.plot(x, x+12, color="blue", lw=3, ls='--', marker='1')

# marker size and color
ax.plot(x, x+13, color="purple", lw=1, ls='-', marker='o', markersize=2)
ax.plot(x, x+14, color="purple", lw=1, ls='-', marker='o', markersize=4)
ax.plot(x, x+15, color="purple", lw=1, ls='-', marker='o', markersize=8, markerfacecolor="red")
ax.plot(x, x+16, color="purple", lw=1, ls='-', marker='s', markersize=8, 
        markerfacecolor="yellow", markeredgewidth=3, markeredgecolor="green");

23、读入csv文件

         USAhousing = pd.read_csv("USA_Housing.csv")

猜你喜欢

转载自blog.csdn.net/hxxjxw/article/details/89075645