《机器学习实战》笔记--第五章:Logistic回归

知识点1:python strip()函数和Split函数的用法总结

原文代码:

def loadDataSet():
    dataMat = []
    labelMat = []
    fr = open('testSet.txt')
    for line in fr.readlines():
        lineArr = line.strip().split()
strip函数原型
声明:s为字符串,rm为要删除的字符序列. 只能删除开头或是结尾的字符或是字符串。不能删除中间的字符或是字符串。
s.strip(rm)        删除s字符串中开头、结尾处,位于 rm删除序列的字符
s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符
s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符
注意:

1. 当rm为空时,默认删除空白符(包括'\n', '\r',  '\t',  ' ')

例如:


2.这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。

例如 :

示例:

字符串的split用法

说明:
Python中没有字符类型的说法,只有字符串,这里所说的字符就是只包含一个字符的字符串!!!

split返回的是一个列表。

 首先列出一种常用的情况,不带参数,默认是空白字符。如下:

结果为:

1.按某一个字符分割,如‘.’

str = ('www.google.com')
print str
str_split = str.split('.')
print str_split

str = ('www.google.com')
print str
str_split = str.split('.',1)
print str_split

结果如下:

3.按某一字符串分割。如:‘||’

str = ('WinXP||Win7||Win8||Win8.1')
print str
str_split = str.split('||')
print str_split

结果如下:


4.按某一字符串分割,且分割n次。如:按‘||’分割2次

str = ('WinXP||Win7||Win8||Win8.1')
print str
str_split = str.split('||',2)
print str_split

结果如下:

5.按某一字符(或字符串)分割,且分割n次,并将分割的完成的字符串(或字符)赋给新的(n+1)个变量。(注:见开头说明)
如:按‘.’分割字符,且分割1次,并将分割后的字符串赋给2个变量str1,str2

url = ('www.google.com')
str1, str2 = url.split('.', 1)
print str1
print str2

结果如下:


知识点2:Python List append()方法

append() 方法用于在列表末尾添加新的对象。

实例

以下实例展示了 append()函数的使用方法:

aList = [123, 'xyz', 'zara', 'abc'];
aList.append( 2009 );
print "Updated List : ", aList;

以上实例输出结果如下:

Updated List :  [123, 'xyz', 'zara', 'abc', 2009]

知识点3:numpy.mat()创建矩阵

原文代码:

def gradAscent(dataMatIn,classLabels):
    dataMatrix = mat(dataMatIn)
知识点4:numpy的getA()/getA1()/getH()/getI()函数

1.mat.getA() 
将自身矩阵变量转化为ndarray类型的变量。 

等价于np.asarray(self)

a = np.mat([[1,2],[3,4]])

a
Out[251]: 
matrix([[1, 2],
        [3, 4]])

a.getA()
Out[252]: 
array([[1, 2],
       [3, 4]])
2.mat.getA1() 
将自身矩阵变换为一维的ndarray类型。 

等价于np.asarray(self).ravel()

a
Out[256]: 
matrix([[1, 2],
        [3, 4]])

a.getA1()
Out[257]: array([1, 2, 3, 4])
3.mat.getH() 

返回自身(如果是复数矩阵)对偶转置矩阵,如果为实数矩阵,则等价于np.transpose(self)

x = np.mat(np.arange(12).reshape(3,4))

x
Out[259]: 
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
z = x - 1j*x

z
Out[262]: 
matrix([[  0. +0.j,   1. -1.j,   2. -2.j,   3. -3.j],
        [  4. -4.j,   5. -5.j,   6. -6.j,   7. -7.j],
        [  8. -8.j,   9. -9.j,  10.-10.j,  11.-11.j]])

z.getH()
Out[263]: 
matrix([[  0. -0.j,   4. +4.j,   8. +8.j],
        [  1. +1.j,   5. +5.j,   9. +9.j],
        [  2. +2.j,   6. +6.j,  10.+10.j],
        [  3. +3.j,   7. +7.j,  11.+11.j]])
4.mat.getI() 

返回可逆矩阵的逆。

x = np.mat(np.arange(12).reshape(3,4))

x
Out[265]: 
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])

x.getI()
Out[266]: 
matrix([[-0.3375    , -0.1       ,  0.1375    ],
        [-0.13333333, -0.03333333,  0.06666667],
        [ 0.07083333,  0.03333333, -0.00416667],
        [ 0.275     ,  0.1       , -0.075     ]])

知识点5:Python uniform() 函数

uniform() 方法将随机生成下一个实数,它在 [x, y) 范围内。

import random

random.uniform(x, y)

注意:uniform()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法

import random

print "uniform(5, 10) 的随机数为 : ",  random.uniform(5, 10)

print "uniform(7, 14) 的随机数为 : ",  random.uniform(7, 14)
uniform(5, 10) 的随机数为 :  6.98774810047
uniform(7, 14) 的随机数为 :  12.2243345905



猜你喜欢

转载自blog.csdn.net/u013841458/article/details/80940807