小标
2018-10-22
来源 :
阅读 1563
评论 0
摘要:本文主要向大家介绍了机器学习入门之机器学习实战--第一章 Numpy使用,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
本文主要向大家介绍了机器学习入门之机器学习实战--第一章 Numpy使用,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
导入numpy 并简单赋值
import numpy as np
a = np.array([0, 1, 2, 3, 4, 5])
print a
# 数组转换到2D矩阵 变成三行两列
b = a.reshape((3, 2))
print b
# .ndim(空间维度的意思)即矩阵列数
print a.ndim
print b.ndim
# .shape查看矩阵形态,即几行几列
print b.shape# numpy避免复制操作 直接修改值,a,b的值都变化
b[1][0] = 77print b, a# 结果为
# [[ 0 1]# [77 3]# [ 4 5]] [ 0 1 77 3 4 5]
# 需要一个复本,使用.copy(),这里c和a是完全独立的副本
c = a.reshape((3, 2)).copy()c[0][0] = 99print c
对数组操作的传递
a=np.array([1,2,3,4,5])
# 对数组操作的传递
print a*2
print a**2
# [ 0 2 4 6 8 10]
# [ 0 1 4 9 16 25]
# python list集的操作
print [1,2,3,4,5]*2
print [1,2,3,4,5]**2
# [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
# TypeError: unsupported operand type(s) for ** or pow(): ‘list‘ and ‘int‘
numpy的索引
# 将数组本身作为数组索引使用
# 显示数组a的第2,3,4个值
print a[np.array([2, 3, 4])]
# [77,3,4]
# 判断条件传递到每一个参数
print a>4
# [False False True False False True]
# 存储判断结果
print a[a>4]
# [77 5]
# 修剪异常值,大于4的值置为4
a[a>4] = 4
print a
# [0 1 4 3 4 4]
专门的修剪函数
# clip修剪,将超出边界的值用边界替代
a = np.array([11,22,33,1,2,3,-1])
print a.clip(0, 4)
# [4 4 4 1 2 3 0]
处理不存在的值
对于包含的不合法的值,使用numpy.NAN做标记
# 模拟一个数据
c = np.array([1, 2, np.NAN, 4, 5, 6, 7])
print c
# [ 1. 2. nan 4. 5. 6. 7.]
# 注意后面有个.号
判断是否是无效值
print np.isnan(c)
# [False False True False False False False]
# 注意这个方法的调用
# 筛选有效数据
print c[~np.isnan(c)]
# mean 求算数平均值,axis是轴 0算是x轴 1算是y轴 考虑x=1 y=2;x=3 y=4
>>> a = np.array([[1, 2], [3, 4]])
>>> np.mean(a)
2.5
>>> np.mean(a, axis=0)
array([ 2., 3.])
>>> np.mean(a, axis=1)
array([ 1.5, 3.5])
运行时间比较
normal_py_src = timeit.timeit(‘sum(x*x for x in xrange(1000))‘, number=10000)
native_np_src = timeit.timeit(‘sum(na*na)‘, setup="import numpy as np; na=np.arange(10000)",
number=10000)
good_np_src = timeit.timeit(‘na.dot(na)‘, setup="import numpy as np; na=np.arange(10000)",
number=10000)
print("normal python:%f sec"%normal_py_src)
print("Naive Numpy:%f sec"%native_np_src)
print("Good py:%f sec"%good_np_src)
#normal python:0.820022 sec
#Naive Numpy:52.690701 sec
#Good py:0.098299 sec
python 中访问个体数组元素是相当耗时的
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号