Python基础+进阶

python基础:

 

一、程序格式:

    ①缩进:空白区域,表达程序的格式框架。是语法的一部分。
             一般为4个空格和一个TAB
    ②注释:
#单行注释
      '''      多
               行
               注
               释
                          '''

二、命名与保留字:

    变量:用来保存和表示数据的占位符号。
                通过赋值符号(=)向变量赋值或修改值
    命名规则:大小写字母、数字、下划线组合
                    大小写敏感,首字符不能是数字。不能与保留字(关键字)相同。如and,break,continue,def,else,for之类

三、数据类型

  数字类型:

   整数和浮点数:
    操作符:
      + - * / // % **
    运算函数:
 abs() 绝对值                             max()
 divmod() 商余                              min()
 pow(x,y)                               int()
 roud(x,d):对x四舍五入,d是小数截取位数                 float()
 

   字符串类型:由0个或多个字符组成的有序字符序列 ,由一对单引号和双引号表示。

  字符串操作
   索引:<字符串>[M] 索引字符串的第M-1个。
   切片:<字符串>[M:N:K] 表示从M开始到第N-1个,以K为步长切片。
 
操作符
 x+y:连接字符串x和y
 n*x    复制n次字符串x
 x in s 如果x是s的子字符串,返回True,否则返回False
 
字符串函数:
 len()返回字符串长度
 str () 任意类型对应的字符串形式
 
字符串方法:
 <str>.lower()  字符串内容小写      <str>.upper() 字符串内容大写
 <str>.split()    返回一个列表,由str根据被分割的部分组成
  Input:  "A,B,C,D".split("," )        
 Output: ['A','B','C']
 
<str>.center(w,fillchar) 返回一个宽度为w,中心内容为str ,由fillchar为其余填充字符的字符串
  Input:     "py".center(10,"-")       
  Output:   ----py---- 
格式化方法:
    字符串.format(<逗号分隔的参数>)
  Input:    "{}是{}个{}的例子".format("",1,"格式化")
  Output:    这是1个格式化的例子
 

  元组类型:不能被修改的序列类型

   使用小括号()或tuple()创建

  列表类型:可随意被修改的序列类型

 使用[]或list()创建
 
操作函数和方法:
 del ls[i] 删除ls中第i元素
 in 判断元素是否在列表中
 ls.append(x)
 ls.copy
 ls.insert(i,x)
 ls.reserve

  字典类型:采用键-值 对应的数据类型

 用大括号{}和dict()创建,键值对用:表示
  {<键1>:<值1>,<键2>:<值2>, … , <键n><值n>}
 
 操作函数:
  k in d   判断k是否在字典d中,返回布尔类型。
  d.keys() 返回字典中所有键
  d.values() 返回字典中所有值
  d.items()   返回字典中所有键值对
  d.get(k)  键k存在,返回相应值

四、流程控制:

   分支结构和循环结构
  分支结构:
   if <条件1>:
      <语句块1>
    elif <条件2>:
      <语句块2>
   ……
  else:   <语句块>
 
  循环结构:
  for循环
for <循环变量> in <遍历结构><语句块>
for  i  in range(N):
#range(N) :从0到N-1 表示循环N次
  可用于遍历字符串,列表,文件
 
  while循环
while <条件判断>:
    <语句块>
 保留字:break continue
  break 跳出并结束当前整个循环,执行循环后语句。
  continue 结束当次循环,继续执行后续次数循环。
 

五、函数:一段具有特定功能的、可重用的语句组

 定义函数:

def <函数名>(<参数>)
    <函数体>
    return <返回值>

 参数:

  实参,形参,位置参数,默认参数,可变参数*(将任意个参数组成元组),关键字参数**(将任意个参数组成字典)

六、类

class 类名():
    def __init__(self,       ):       #初始化 
        …
        …
    def<函数名>() :
        <其他功能>
 
 

 Python进阶:

numpy:

import numpy as np

生成数组:np.array()

   从原有列表转换为数组 np.array(list)

    np.full(shape,fill_value,dtype)   以dtype类型,将fill_value填充成shape的列表
    np.linspace(start,stop,num)   将首尾区间数字等分为num个的数组
    np.eye()             n维的单位矩阵

 访问数组中的元素

    a =np.array()
    a[,]      一维
    a[:,:]   二维

 数组属性

 a.ndim     数组轴的个数
 a.shape    数组的维度
 a.size        数组元素的总个数
 a.dtype    数组中元素类型
 a.itemsize  数组中每个元素的字节大小。
 
 数组运算
  +-*/%

 统计类型

  np.sum(a)

 比较

Input:a = np.array(range(10))  a<3
Output: array([ True,  True,  True, False, False, False, False, False, False,False])

 变形

  a.shape(x,y)

 排序

  np.sort(a)

 拼接

  np.concatenate([a1,a2,…])
 
 
(axis=0指的是逐行,axis=1指的是逐列)

pandas

import pandas as pd

#csv
df = pd.read_csv(路径)
df.head()    读前几行
df.tail()            读后几行
 
DataFrame
 df.columns       列名
 df.index            索引
 
筛选
 df[df.数学 > 80]
 复杂筛选
  df[(df.语文>80)& (df.数学>80)& (df.英语>80)]
 
排序
 df.sort_values(['数学','语文'])
 
访问元素
 scores = {
   '姓名':['','',''],
   '语文':[2,3,3],
   '英语':[6,6,6],
   '数学':[9,9,9]
 
}
df = pd.DataFrame(scores.index='one','two','three')
df.loc[one]  #访问第one行
df.iloc[0]  #访问第0行
 
df.ix()#合并了loc和iloc的功能
df.values() 打印所有数组
df.数学.values 打印数学数组
df.数学.value_counts()    简单的统计
df[['数学','语文']]  df.数学        都为提取  xxx 列
 
分类:    重点
def func(scores):
   if scores>=85:
       return '优秀!!'
   if scores>=60 and socres<85:
       return '优秀!'
   if scores<60:
       return '凉了!!!'
   
df['数学咋样?'] = df.数学.map(func)
   
df['new_scores'] = df.apply(lambda x : x.数学 +x.语文,axis = 1)           添加new_scores这一列
df.drop(['new_scores'],axis = 1)                                  删除new_scores这一列
 
pandas中的dataframe 的操作,很大一部分跟numpy中的二维数组的操作是近似的。
 
 
 
matplotlib绘图
线性图
import matplotlib as plt
%matplotlib inline
plt.plot(x,y,'o',color = '' ,lambel = '',marksize =,linewidth = ,markeredgecolor='',makeredgewidth=)
plt.legend()        #与lambel相连,为图例
#o 点 --  虚线 -p 五边形 -h 六边形 -D 正方形 -d 菱形
 

#散点图

plt.scatter(x,y)

#柱状图

 df.plot.bar()
 

#密度图

 df.plot.kde()
 

#直方图

 df.hist()
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/oldsaltyfish/p/9383435.html