码迷,mamicode.com
首页 > 编程语言 > 详细

《Python之机器学习(NumPy)》

时间:2016-01-23 13:00:33      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

#单行注释
‘‘‘
多行注释
多行注释
多行注释
‘‘‘

#a.ndim     输出数组的维数;
#a.shape    输出数组的形式(几行,几列)
#copy()     复制数组
#a*2        数组中每个元素乘以2
#[1,2]*2    数组将变成4个
#a**2       a的平方
#[1,2]**2   unsuported operand type
#数组访问。修建异常值。处理不存在的值。
#clip()     超出某区间边界的部分修剪掉
#mean()     均值
#处理不存在的值

import numpy as np
a = np.array([0,1,2,3,4,5])

b = a.reshape((3,2))#transport a array to b. change b same to a.

c = a.reshape((3,2)).copy()#change c no change a.they are depended.

a[a>4] = 2 #修剪异常值

d = a.clip(0,2)#d 中最大为2

e = np.array([1,2,np.NAN,3,4])## np.isnan(e)    来判定数组是否有不合理值
f = e[~np.isnan(e)]           ## e[~np.isnan(e)]输出合理的数

m = np.mean(e[~np.isnan(e)])  ##均值。                

##应该时常考虑如何将数组元素的循环处理冲Python中移到高度优化的NumPy..SciPy扩展函数中(验证否定)
#example 求1~1000的所有平方和
import timeit
normal_py_sec = timeit.timeit(sum(x*x for x in xrange(1000)),
                              number = 1000)
naive_np_sec = timeit.timeit(sum(na*na),
                             setup="import numpy as np;na=np.arange(1000)",
                             number = 1000)
good_np_sec = timeit.timeit(na.dot(na),
                            setup="import numpy as np; na=np.arange(1000)",
                            number = 1000)
print("Normal Python :%f sec"%normal_py_sec)
print("Naive Python :%f sec"%naive_np_sec)
print("Good NumPy: %f sec"%good_np_sec)

‘‘‘
Normal Python :0.081011 sec
Naive Python :0.384903 sec
Good NumPy: 0.013812 sec  经验证,已经没有多大差别了。用
‘‘‘

 

《Python之机器学习(NumPy)》

标签:

原文地址:http://www.cnblogs.com/michael2016/p/5153041.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!