1.Python 数据类型

Python 内置的常用数据类型共有6中:

数字(Number)、布尔值(Boolean)、字符串(String)、元组(Tuple)、列表(List)、字典(Dictionary)。

数字:常用的数字类型包括整型数(Integer)、长整型(Long)、浮点数(Float)、复杂型数(Complex)。

10、100、-100都是整型数;-0.1、10.01是浮点数。

布尔值:True代表真,False代表假。

字符串:在Python里,字符串的表示使用成对的英文单引号,双引号进行表示,‘abc’或“123”。

元组:使用一组小括号()表示,(1,‘abc’,0.4)是一个包含三个元素的元组。假设上例的这个元组叫做t,那么t[0]=1,t[1]='abc'。默认索引的起始值为0,不是1。

列表:使用一对中括号[ ]来组织数据,[1,‘abc’,0.4]。需要注意的是Python允许在访问列表时同时修改列表里的数据,而元组则不然。

字典:包括多组键(key):值(value),Python使用大括号{ }来容纳这些键值对,{1:‘1’,‘abc’:0.1,0.4:80},假设上例字典为变量d,那么d[1]='1',d['abc']=0.1

2.Python 流程控制

比较常见的包括分支语句(if)和循环控制(for)

分支语句语法结构:

if布尔值/表达式

else:

或者

if布尔值/表达式

elif布尔值/表达式

else:

代码1:分支语句代码样例:

=====》

b=True

if b:

  print("It's True!")

else:

  print('It's False!")

=====》

It's True!

=====》

b=False

c=True

if b:

  print("b is True!")

elif c:

  print('c is True!")

else:

  print("both are False")

=====》

c is True!

循环控制语法结构:

for 临时变量 in 可遍历数据结构(列表、元组、字典)

  执行语句

代码2:循环语句代码样例:

=====》

d={1:'1','abc':0.1,0.4:80}

for k in d:

  print(k,":",d[k])

=====》

1:1

abc:0.1

0.4:80

1.3 Python函数模块设计

Python采用def关键字来定义一个函数:

代码3:函数定义和调用代码样例:

=====》

def foo(x):

  return x**2

print(foo(8.0))

=====》

64.0

1.4 Python编程库(包)的导入

代码4:程序库/工具包导入代码示例

=====》

 #1.直接使用import导入math工具包

import math

#调用math包下的函数exp求自然指数

print(math.exp(2))

#2.从(from)math工具包里指定导入exp函数

from math import exp

print(exp(2))

#3.从(from)math工具包里指定导入exp函数,并且对exp重新命名为ep

from math import exp as ep

print(ep(2))

=====》

7.38905609893065

7.38905609893065

7.38905609893065

1.5 Python基础综合实践

代码5:良/恶性乳腺癌肿瘤预测代码样例

=====》

 #导入pandas工具包,并且更名为pd

import pandas as pd

#调用pandas工具包的read_csv函数/模块,传入训练文件地址参数,获得返回的数据并且存至变量df_train

df_train=pd.read_csv('breast-cancer-train.csv')

#调用pandas工具包的read_csv函数/模块,传入测试文件地址参数,获得返回的数据并且存至变量df_test

df_test=pd.read_csv('breast-cancer-test.csv')

#选取‘肿块厚度’(Clump Thickness)与‘细胞大小’(Cell Size)作为特征,构建测试集中的正负分类样本

df_test_negative=df_test.loc[df_test['Type']==0][['Clump Thickness','Cell Size']]

df_test_positive=df_test.loc[df_test['Type']==1][['Clump Thickness','Cell Size']]

#导入matplotlib工具包中pyplot并命名为plt

import matplotlib.pyplot as plt

#matplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None)

#x,y接收array。表示x轴和y轴对应的数据。无默认

#s接收数值或者一维的array。指定点的大小,若传入一维array,则表示每个点的大小。默认为None

#c接收颜色或者一维的array。指定点的颜色,若传入一维array,则表示每个点的颜色。默认为None

#marker接收特定string。表示绘制的点的类型。默认为None

#绘制良性肿瘤样本点,标记为红色的o

plt.scatter(df_test_negative['Clump Thickness'],df_test_negative['Cell Size'],marker='o',s=200,c='red')

#绘制恶性肿瘤样本点,标记为黑色的x

plt.scatter(df_test_positive['Clump Thickness'],df_test_positive['Cell Size'],marker='x',s=150,c='black')

#绘制x,y轴的说明

plt.xlabel('Clump Thickness')

plt.ylabel('Cell Size')

#显示图

plt.show()

 #导入numpy工具包,并且重命名为np

import numpy as np

#利用numpy中的random函数随机采样直线的截距和系数

intercept=np.random.random([1])

# print(intercept)#[0.79195932]

coef=np.random.random([2])

# print(coef)#[0.37965899 0.47387532]

lx=np.arange(0,12)

# print(lx)#[ 0  1  2  3  4  5  6  7  8  9 10 11]

ly=(-intercept-lx*coef[0])/coef[1]

# print(ly)

# [-1.09996728 -1.60387435 -2.10778142 -2.61168849 -3.11559556 -3.61950262

# #  -4.12340969 -4.62731676 -5.13122383 -5.6351309  -6.13903797 -6.64294503]

#绘制一条随机直线

plt.plot(lx,ly,c='yellow')

plt.scatter(df_test_negative['Clump Thickness'],df_test_negative['Cell Size'],marker='o',s=200,c='red')

plt.scatter(df_test_positive['Clump Thickness'],df_test_positive['Cell Size'],marker='x',s=150,c='black')

plt.xlabel('Clump Thickness')

plt.ylabel('Cell Size')

plt.show()

#导入sklearn中的逻辑斯蒂回归分类器

from sklearn.linear_model import LogisticRegression

lr=LogisticRegression()

#使用前10条训练样本学习直线的系数和截距

lr.fit(df_train[['Clump Thickness','Cell Size']][:10],df_train['Type'][:10])

print('Testing accuracy (10 training samples):',lr.score(df_test[['Clump Thickness','Cell Size']],df_test['Type']))

intercept=lr.intercept_

coef=lr.coef_[0,:]

#原本这个分类面应该是lx*coef[0]+ly*coef[1]+intercept=0,映射到2维平面上之后,应该是:

ly=(-intercept-lx*coef[0])/coef[1]

plt.plot(lx,ly,c='green')

plt.scatter(df_test_negative['Clump Thickness'],df_test_negative['Cell Size'],marker='o',s=200,c='red')

plt.scatter(df_test_positive['Clump Thickness'],df_test_positive['Cell Size'],marker='x',s=150,c='black')

plt.xlabel('Clump Thickness')

plt.ylabel('Cell Size')

plt.show()

lr=LogisticRegression()

#使用所有的训练样本学习直线的系数和截距

lr.fit(df_train[['Clump Thickness','Cell Size']],df_train['Type'])

print('Testing accuracy (all training samples):',lr.score(df_test[['Clump Thickness','Cell Size']],df_test['Type']))

intercept=lr.intercept_

coef=lr.coef_[0,:]

#原本这个分类面应该是lx*coef[0]+ly*coef[1]+intercept=0,映射到2维平面上之后,应该是:

ly=(-intercept-lx*coef[0])/coef[1]

plt.plot(lx,ly,c='blue')

plt.scatter(df_test_negative['Clump Thickness'],df_test_negative['Cell Size'],marker='o',s=200,c='red')

plt.scatter(df_test_positive['Clump Thickness'],df_test_positive['Cell Size'],marker='x',s=150,c='black')

plt.xlabel('Clump Thickness')

plt.ylabel('Cell Size')

plt.show()

Testing accuracy (10 training samples): 0.8685714285714285

Testing accuracy (all training samples): 0.9371428571428572

Python机器学习(python简介篇)的更多相关文章

  1. Python机器学习(基础篇---监督学习(线性分类器))

    监督学习经典模型 机器学习中的监督学习模型的任务重点在于,根据已有的经验知识对未知样本的目标/标记进行预测.根据目标预测变量的类型不同,我们把监督学习任务大体分为分类学习与回归预测两类.监督学习任务的 ...

  2. Python机器学习(基础篇---监督学习(k近邻))

    K近邻 假设我们有一些携带分类标记的训练样本,分布于特征空间中,对于一个待分类的测试样本点,未知其类别,按照‘近朱者赤近墨者黑’,我们需要寻找与这个待分类的样本在特征空间中距离最近的k个已标记样本作为 ...

  3. Python机器学习(基础篇---监督学习(集成模型))

    集成模型 集成分类模型是综合考量多个分类器的预测结果,从而做出决策. 综合考量的方式大体分为两种: 1.利用相同的训练数据同时搭建多个独立的分类模型,然后通过投票的方式,以少数服从多数的原则作出最终的 ...

  4. Python机器学习(基础篇---监督学习(朴素贝叶斯))

    朴素贝叶斯 朴素贝叶斯分类器的构造基础是贝叶斯理论.采用概率模型来表述,定义x=<x1,x2,...,xn>为某一n维特征向量,y∈{c1,c2,...ck}为该特征向量x所有k种可能的类 ...

  5. Python机器学习(基础篇---监督学习(支持向量机))

    支持向量机(分类) 支持向量机分类器根据训练样本的分布,搜索所有可能的线性分类器中最佳的那个.我们会发现决定其直线位置的样本并不是所有训练数据,而是其中的两个空间间隔最小的两个不同类别的数据点,而我们 ...

  6. 机器学习1—简介及Python机器学习环境搭建

    简介 前置声明:本专栏的所有文章皆为本人学习时所做笔记而整理成篇,转载需授权且需注明文章来源,禁止商业用途,仅供学习交流.(欢迎大家提供宝贵的意见,共同进步) 正文: 机器学习,顾名思义,就是研究计算 ...

  7. python机器学习简介

    目录 一:学习机器学习原因和能够解决的问题 二:为什么选择python作为机器学习的语言 三:机器学习常用库简介 四:机器学习流程   机器学习是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析 ...

  8. Python学习【第一篇】Python简介

    Python简介 Python前世今生 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. 现在,全世界差不多有600多种编 ...

  9. Python之路(第一篇):Python简介和基础

    一.开发简介 1.开发:      开发语言:               高级语言:python.JAVA.PHP.C#..ruby.Go-->字节码                低级语言: ...

随机推荐

  1. Maven项目下的Mybatis逆向工程

    IDEA Maven项目的Mybatis逆向工程 1.配置.pom 如果是在多模块开发下,该文件逆向工程要生成的那个模块下的pom文件. <build> <plugins> & ...

  2. android------个人项目(歆语气象通新版)

    歆语气象通: 歆语气象伴随你的身边,便捷生活. 包含了以下功能: 1. 天气预报数据覆盖中国城市和地区:2. 提供一周天气预报及最低最高温度,时刻关注天气,轻松计划出行:3. 各种指数详细信息,如太阳 ...

  3. MySQL ERROR 1130 (HY000): Host '192.168.1.8' is not allowed to connect to this MySQL server

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.8' IDENTIFIED BY 'www.linuxidc.com' WITH GRANT OPTI ...

  4. edu9E. Thief in a Shop

    题意:n个物品每个价值a[i],要求选k个,可以重复,问能取到哪几个价值 题解:fft裸题.但是直接一次fft,然后快速幂会boom.这样是严格的\(2^{20}*log2(2^{20})*log(w ...

  5. 最简单的RPC框架实现

    通过java原生的序列化,Socket通信,动态代理和反射机制,实现一个简单的RPC框架,由三部分组成: 1.服务提供者,运行再服务端,负责提供服务接口定义和服务实现类 2.服务发布者,运行再RPC服 ...

  6. redis 持久化文章分析的很到位

    https://baijiahao.baidu.com/s?id=1611955931705092609&wfr=spider&for=pc

  7. 菜鸟脱壳之脱壳的基础知识(六)——手动查找IAT和修复Dump的程序

    前面讲了如何寻找OEP和脱壳,有的时候,Dump出来的时候不能正常运行,是因为还有一个输入表没有进行处理,一些加密壳会在IAT加密上面大做文章,用HOOK - API的外壳地址来代替真是的IAT的地址 ...

  8. FPM四:用OVP做查询跳转到明细

    前面做了查询的UIBB配置,在这边可以直接复用,查询的feeder class也就自动复用了. 1.给查询的feeder class添加接口,继续继承form的接口. 2.挨个实现每个方法,即使是用不 ...

  9. vue 移动端轻量日期组件不依赖第三方库

    Vue版移动端日期选择组件 1.优点:不需要依赖其他第三方库,灵活可配置: 不需要依赖第三方组件的vue日期移动端组件  小轮子 轻量可复用:  https://github.com/BeckReed ...

  10. Kafka 1.0.0集群安装

    环境 主机名 IP 地址 安装路径 系统 sht-sgmhadoopdn-01 172.16.101.58 /opt/kafka_2.12-1.0.0 /opt/kafka(软连接) CentOS L ...