- 博客(37)
- 收藏
- 关注
原创 WIN10修改CMD编码方式
按下快捷键Win+R,输入regedit打开注册变编辑器,依次找到 HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\,右键新建一个字符串值(S), 取名叫Autorun,值设为@chcp 65001>nul,确定保存退出。 重新运行程序便可以正确的显示中文了。...
2018-05-19 16:10:10
516
原创 编码问题的理解
当我们定义一个变量:a = '中'实际上在内存中找了一个区域存入了'中',我们知道在内存中的编码方式统一为Unicode,所以'中'实际上占用了2个字节>>> ord('中')2001320013的二进制表示为01001110 00101101,即ord()功能是显示存入内存中的以Unicode编码方式的二进制数,既然如此,我们可以将这个以Unicode编码方式的二进制数以ut...
2018-05-05 21:05:11
299
原创 数据分析第四章数据加载存储与文件格式
1.读取文本格式数据import pandas as pddf = pd.read_csv('ex1.csv')print(df) a b c d message0 1 2 3 4 hello1 5 6 7 8 world2 9 10 11 12 foo如果文本内容是这样的(没有columns):df = pd.read_c...
2018-04-23 16:49:32
371
原创 数据分析第三章pandas入门(四)
1.汇总和计算描述统计frame = DataFrame([ [1.4, np.nan], [7.1, -4.5], [np.nan, np.nan], [0.75, -1.3] ], index=list('abcd'), columns=['one', 'two'])print(frame)print(frame.sum())print(frame.sum(axis=1)) one...
2018-04-22 18:12:01
285
原创 数据分析第三章pandas入门(三)
1.算术运算和数据对齐frame1 = DataFrame( np.arange(9).reshape((3,3)), index=['yz', 'nj', 'bj'], columns=list('bcd') )frame2 = DataFrame( np.arange(12).reshape((4, 3)), index=['sz','yz', 'nj', 'wx'], columns=li...
2018-04-22 15:44:09
336
原创 数据分析第三章pandas入门(二)
1.索引对象frame2 = DataFrame(population, index=[2001, 2002])frame2.index[0] = 2003print(frame2.index)TypeError: Index does not support mutable operationsindex对象是不可修改的,即不能将index类型当作一个对象的方式来修改其中的值,要修改只能整...
2018-04-22 11:34:08
625
原创 数据分析第三章pandas入门(一)
1.Seriesimport numpy as npfrom pandas import DataFrame,Seriesa = np.array([1,2,3,4])obj = Series(a)print(obj)0 11 22 33 4在我们没有指定索引的时候,会自动生成0到N-1的索引import numpy as npfrom pandas import...
2018-04-18 21:58:17
329
原创 数据分析第二章Numpy
1.数组切片和列表切片最大的区别是数组切片不会创建原数组的副本,而列表切片是创建原数组的副本再进行操作import numpy as npa = np.array([0,1,2,3])b = a[:2]b[:] = 5 #必须写成b[:]切片形式才有此效果,如果写成b=5,相当于重新定义了变量b,a不会发生修改print(a)#输出[5 5 2 3]此外还需要注意numpy数组没有...
2018-04-17 21:56:52
571
原创 数据分析第一章
知识点:序列化和反序列化1.使用'w'写入的数据只能是字符串或者二进制,否则会报错info = {'name':'buyang', 'age':28}fr = open('test.txt', 'w')fr.write(info)TypeError: write() argument must be str, not dict稍作修改:info = {'name':'buyang', 'ag...
2018-04-16 21:20:27
308
原创 1 在CMD中运行python程序
c:表示进入C盘dir 表示查看所有文件和文件夹cd python程序 表示进入名为“python程序”文件夹cd \ 表示返回根目录cd .. 表示返回上一层找到执行程序后输入 python hello.py执行程序...
2018-03-22 21:48:30
2261
原创 readlines的性质
for line in fr.readlines():每一个line是一个字符串,字符串也可以line[0]取出单个字符串line.split('\t')之后,line才会变成列表
2018-03-22 19:58:16
1041
原创 map()函数的用法
map()函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]如果希望把list的每个元素都作平方,就可以用map()函数:因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算:d...
2018-03-16 15:50:23
16631
原创 nonzero用法
对列表,数组和矩阵都可以使用,作用是返回一个元组,对于2维的数据a(形如:[ [],[]..... ]),则返回( array( [ ] ), array( [ ] ) ),其中元组中第一个数组的数据表示a中的非零元素所在的行,第二个数组表示a中非零元素所在的列,如果是3维的数据(矩阵性质的只能是二维,不能是三维数组,matrix must be 2-dimensional),那元素中就有3个数...
2018-03-08 19:57:08
544
原创 关于运算中矩阵型或数组型是否转为数值型
1.矩阵型和数值型计算,矩阵型若为[[数值]](即只有一行一列),一般情况下不需要转为数值型2.在判断语句中,矩阵型依然可以使用,如:if mat( [[True]] ): print(111)#输出为111同样,数组和列表形式也可以:if array([[True]]): print(111)if [True]: print(111)if [[True]]: ...
2018-03-07 14:20:52
1090
原创 python 中的列表,数组和矩阵
Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。使用Python列表可以存储一维数组,通过列表的嵌套可以实现多维数组,那么为什么还需要使用Numpy呢?Numpy是专门针对数组的操作和运算进行了设计,所以数组的存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优势就越明显。通常Numpy数组中的所有元素的类型都是相同的,而Python列...
2018-03-01 15:53:16
3858
原创 矩阵操作
生成矩阵:>>> from numpy import *>>> data1 = mat( zeros(3, 3) )Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: data type not understood&..
2018-02-28 21:26:19
398
原创 sorted排序的用法
#sorted用法:a = [1,5,3,6,2] sorted(a) -> [1,2,3,5,6] sorted(a, reverse=True) -> [6,5,3,2,1]#a = [('b',4), ('a',2), ('c',3), ('d',1)] sorted(a, key=lambda x:x[0] ) -> [('a',4), ('b',2)...
2018-02-28 19:32:54
257
原创 numpy中random的用法
#random在numpy内,可以直接导入numpy中所有包,也可以只import random#random.uniform(10, 20)和random.uniform(20, 10)表示在[10,20)和(10,20]区间取任意数#random.randint(10, 20)表示在[10,20)区间取整数,不能写成random.randint(20,10),必须是左变小右边大...
2018-02-28 19:31:36
399
原创 正则切分解析文本数据文件
mport re #正则表达式mySent = 'This book is the best book.'regEX = re.compile('\\W*') # \\W*表示除了单词数字外的任意字符串list0fTokens = regEX.split(mySent)上面也可以写成:mySent = 'This book is the best book.'listOfT...
2018-02-28 19:29:23
1196
原创 决策树的保存——序列化和反序列化
根据数据集创建决策树的速度比较慢,即使数据量比较小,也需要几秒钟的时间,因此为了方便起见,在执行一次程序后,创建好树就把这棵保存起来,创建好的树是字典形式,由于写入和读出的必须是字符串格式,所以写入和读取需要使用到序列化和反序列化方法一:使用json模块def storeTree(inputTree,filename): import json fw = open(
2018-01-23 22:02:52
1702
原创 决策树——绘图的全过程
以书上例子为基础(按照整个程序的调用顺序总结):首先列出树的数据,两组树的数据组成的列表,分别是listOfTrees[0]以及listOfTrees[1]:def retrieveTree(i): listOfTrees =[{'no surfacing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}},
2018-01-22 17:02:04
9974
1
原创 决策树——绘制树形图
import matplotlib.pyplot as plt#解决中文字和坐标问题plt.rcParams['font.sans-serif'] = ['Simhei']plt.rcParams['axes.unicode_minus'] = False#定义文本框和箭头格式,必须以字典方式定义,后面程序要用decisionNode = dict( boxstyle = 'sawto
2018-01-21 19:44:18
4509
原创 python——默认变量全局有效性
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Simhei']plt.rcParams['axes.unicode_minus'] = FalsedecisionNode = dict( boxstyle = 'sawtooth', fc = '0.8' ) #boxstyle为文本框类型,sawt
2018-01-21 16:44:00
632
原创 决策树(一)
程序:from math import *import operatordef calShannonEnt(dataSet): #熵的计算函数,熵的计算只与标签值有关 numEntries = len(dataSet) #len(dataSet)计算dataSet矩阵的行数,和dataSet.shape[0]功能一样 labelCounts = {} ...
2018-01-21 15:10:44
298
原创 K近邻改进约会网站(六):所有功能函数总结
1.处理文本数据:def file2matrix(filename): fr = open(filename) arrayOlines = fr.readlines() numberOlines = len(arrayOlines) returnMat = zeros( (numberOlines, 3) ) classLabelVector = []
2018-01-17 19:54:20
213
原创 跨目录调用函数
导入模块调用函数在未手动设置环境变量的前提下只能导入同级或者子级模块,一个完整的项目程序结构与上图类似,由一个总的文件夹包含多个子文件夹,以上图为例,如果想实现不管这个总的文件夹在哪个位置都能动态的实现模块导入级函数调用,可以这样做(在atm中导入main并调用main中的login函数):import osimport sysprint(os.path.abspath(__file__)
2018-01-17 15:33:13
383
原创 K近邻改进约会网站(五):使用算法进行预测
def classifyPerson(): resultList = ['not at all', 'in small doses', 'in large doses'] #定义结果列表表示3种结果 percentTats = float( input('percentage of time spent playing video games?') ) #输入特征1 f
2018-01-17 11:10:36
249
原创 K近邻改进约会网站(四):测试算法
def datingClassTest(): #测试函数 hoRatio = 0.10 #设置比例 datingDataMat, datingLabels = file2matrix('datingTestSet2.txt') #返回文本文件处理的数据,分别是3列特征值和一列标签 normMat, ranges, minVals = autoNorm(da
2018-01-17 10:27:27
202
原创 K近邻改进约会网站(三):数据的归一化处理
不同特征之间的数值差距较大,在假设各个特征同等重要的情况下,必须实施归一化处理,将任意特征值转化为0到1区间的值:新值 = (特征值 - 该特征中最小值 ) / (该特征最大值 - 该特征最小值)在kNN.py中添加新函数用作归一处理:def autoNorm(dataSet): #dataSet为1000*3规模,不加标签 minVals = dataSet.min
2018-01-16 17:30:41
299
原创 K近邻改进约会网站(二):数据图形化展示
简单绘制散点图的方法(无法添加图例):from numpy import *import kNNimport matplotlib.pyplot as pltdatingDataMat, datingLabels = kNN.file2matrix('datingTestSet2.txt')fig = plt.figure()ax = fig.add_subplot(111)
2018-01-16 14:54:50
232
原创 python绘图基础—scatter散点图用循环分类法加图例
import matplotlib.pyplot as pltimport kNNplt.rcParams['font.sans-serif']=['Simhei']plt.rcParams['axes.unicode_minus']=FalsedatingDataMat, datingLabels = kNN.file2matrix('datingTestSet2.txt')pl
2018-01-15 21:49:27
14301
原创 python绘图基础—解决图例中文乱码和负数坐标问题问题
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['Simhei'] #解决中文显示问题,目前只知道黑体可行plt.rcParams['axes.unicode_minus']=False #解决负数坐标显示问题fig = plt.figure()ax = fig.add_subplot(1
2018-01-15 20:09:14
6394
2
原创 python绘图基础—scatter用法
scatter(x, y, 点的大小, 颜色,标记),这是最主要的几个用法,如果括号中不写s= c=则按默认顺序,写了则按规定的来,不考虑顺序import matplotlib.pyplot as pltfig = plt.figure()ax = fig.add_subplot(111)ax.scatter([1,2,3,4],[2,4,6,8],[10,20,30,40],[
2018-01-15 16:28:51
73266
4
原创 python绘图基础—快速绘图和面向对象绘图
pyplot模块虽然用法简单,但不适合在较大的应用程序中使用。 为了将面向对象的绘图库包装成只使用函数的调用接口,pyplot模块的内部保存了当前图表以及当前子图等信息。当前的图表和子图可以使用plt.gcf()和plt.gca()获得,分别表示"Get Current Figure"和"Get Current Axes"。在pyplot模块中,许多函数都是对当前的Figure或Axes对象进行
2018-01-15 14:53:46
1964
原创 python绘图基础
简单的绘图:import matplotlib.pyplot as plt #也可以写成:from matplotlib import pyplot as pltx = [5,6,7,8]y = [7,8,5,6]plt.plot(x,y) #也可以直接plt.plot([5,6,7,8],[7,8,5,6])plt.title('First
2018-01-15 09:23:29
2193
原创 K近邻改进约会网站(一):文本数据的处理
建立转变待处理文件格式的函数:from numpy import *def file2matrix(filename): fr = open(filename) arrayOlines = fr.readlines() #变为列表,格式为['1\t2\t3\t4\n', '1\t2\t3\t4\n',.......],注意里面都字符串 numberOlines
2018-01-14 17:25:14
365
原创 kNN近邻算法学习
创建模块kNN.py(相当于导入已有的数据和标签):from numpy import *import operatordef createDataSet(): group = array( [ [1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1] ] ) labels = ['A', 'A', 'B', 'B'] return g
2018-01-14 14:49:07
226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人