Python学习

python学习网 2019-10-30 23:44:01

sklearn

一、获取数据

1.导入数据:

from sklearn import datasets

 

 

from sklearn import datasets

iris=datasets.load_iris()     #导入数据集

x=iris.data                  #获得特征向量

y=iris.target                   #获得样本lable

2.

from sklearn.datasets.samples_generator import make_classification
 
X, y = make_classification(n_samples=6, n_features=5, n_informative=2, 
    n_redundant=2, n_classes=2, n_clusters_per_class=2, scale=1.0, 
    random_state=20)
 
# n_samples:指定样本数
# n_features:指定特征数
# n_classes:指定几分类
# random_state:随机种子,使得随机状可重

 

二、数据预处理

2.1 数据归一化(使得训练数据的标准化规则与测试数据的标准化规则同步)

from sklearn import preprocessing
data = [[0, 0], [0, 0], [1, 1], [1, 1]]
# 1. 基于mean和std的标准化
scaler = preprocessing.StandardScaler().fit(train_data)
scaler.transform(train_data)
scaler.transform(test_data)
 
# 2. 将每个特征值归一化到一个固定范围
scaler = preprocessing.MinMaxScaler(feature_range=(0, 1)).fit(train_data)
scaler.transform(train_data)
scaler.transform(test_data)
#feature_range: 定义归一化范围,注用()括起来

 

2.2 数据正则化(使得训练数据的标准化规则与测试数据的标准化规则同步,最终使得每个样本的范数都为1。)

>>> X = [[ 1., -1.,  2.],
...      [ 2.,  0.,  0.],
...      [ 0.,  1., -1.]]
>>> X_normalized = preprocessing.normalize(X, norm='l2')
 
>>> X_normalized                                      
array([[ 0.40..., -0.40...,  0.81...],
       [ 1.  ...,  0.  ...,  0.  ...],
       [ 0.  ...,  0.70..., -0.70...]])

2.3 one-shot编码

one-hot编码是一种对离散特征值的编码方式,在LR模型中常用到,用于给线性模型增加非线性能力。

data = [[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]
encoder = preprocessing.OneHotEncoder().fit(data)
enc.transform(data).toarray()

 

 

 

一、      空格

  1. 赋值“=”前后 各一个空格。
  2. 所有二元运算符都用空格与操作数分开。
  3. 括号内不要有空格
  4. 逗号,冒号,分号前不要有空格,而是后面有一个空格。

if x==88:

print  x, y

   x, y = y, x

  1. 参数列表,索引或切片的左括号前不应有空格。

dogs[“key”] = list[index]

二、      断行

  1. 逗号后面断开
  2. 运算符前断开
  3. 在括号中断开,尽量不要用续行符“\”。“\”可以作为续行时使用。但在大括号,中括号,小括号中续行是隐式的。

三、      数据类型

  1. type()函数可以返回传入数据的类型:<class”float”>
  2. {0} 的年龄是 {1:d} 岁。 d表示整型,f表示浮点型,指明数据类型。

print('test:{0:.3f}'.format(math.pi))
.3f
表示浮点数的精度为3(小数位保留3位)

3.{1:d}    格式化十进制数;{0:5d}     输出长度为5的字符串,不足用空格补齐

   {1:.2f}   保留两位小数      

{1:10.2f}    10表示总长度,包括小数点和小数部分,不足用空格补齐

  1. 可以用str()函数将任何类型的数字转换为字符串

>>>str(3.24)

‘3.24’

  1. int()和float()可以将字符串转换为数字。

>>>int(‘9’)

9

float(‘9.6’)

  9.6

四、控制语句

1. for I in range(1,10)                       1≤i<10

2.跳转语句:break,continue,return

2.1   break:强行退出循环体,不再执行循环体剩下语句。

for item in range (10)

if item ==3

     break    #跳出循环

     print(“count is : {0}”.format(item))

运行结果:

count is :0

count is :1

count is :2

2.2  continue:结束本次循环,跳过循环体中尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。

for item in range (5)

if item ==3

      continue

     print(“count is : {0}”.format(item))

运行结果:

count is :0

count is :1

count is :2

count is :4

count is :5

五、列表

1.创建列表:可以用list([iterable])创建,或者用[ ]把元素括起来。

>>>[20,10,15,'hello']

2.追加元素:

list.append(x):追加单个元素x

list.extend(['x','y']):追加多个元素

3.插入元素:list.insert(i,'x'):参数i为要插入的索引,x为要插入的元素数值

>>>student_list=['张三','李四','王五']

>>>student_list.insert(2,'董六')

>>>student_list

['张三','李四','董六','王五']

4.reverse():倒置列表

copy():复制列表

clear():清除列表中的所有元素

index(x[,i[,j]]):返回查找x第一次出现的索引,i是开始查找索引,j是结束查找索引。

count(x):返回x出现的次数

5.获得0-9中偶数的平方列:

 >>>n_list=[]

>>>for x in range (10):

>>>     if x%2=0:

>>>         n_list.append(x**2)  #x**2为求x的2次幂

>>>print(n_list)

[0,4,16,36,64]

六、集合

1.集合(set)是一种可迭代的,无序的,不能包含重复元素的数据结构。与序列比较,序列中的元素是有序的,可以重复出现,但集合中的元素是无序的,且不能有重复元素。集合分为可变集合(set)和不可变集合(frozenset)

2.创建可变集合:用set([iterable])或者用 { }把元素括起来,元素之间用逗号隔开:a={'张三','李四','王五'}。创建空集只能用:b=set( )表示。

3.创建不可变集合:只能使用frozenset([iterable])函数。

>>>student_set=frozenset({'张三','李四','王五'})

4.创建字典:可以使用dict函数,或者用{ }把“键:值”括起来。

>>>dict1={102:'张三',105:'李四',109:'王五'}

>>>len(dict1)

3

5.遍历字典:

student_dict={102:'张三',105:'李四',106:'王五'}

print('---遍历键---’)

    for student _id in student_dict.keys():

       print('学号:'+str(student_id))

---遍历键---

学号:102

学号:105

学号:109

阅读(2400) 评论(0)