美文网首页解密大数据
Python 学习笔记 Lesson 04

Python 学习笔记 Lesson 04

作者: LY加油站 | 来源:发表于2017-09-01 22:12 被阅读27次

    这个编程系列我采用的方法是,照着老师课件一步步跟做,遇到问题就记录,能搜索解决就搜索解决,搜不到的去提问,尽量找到解答。

    简书专栏里有非常完备的新手上路指南(从下载软件开始),我就不一步步搬运了。

    这里主要是根据我在操作时出错的地方,从小白的角度做下总结,同时也分享入门路上的体验,希望能对你有点帮助。


    NumPy入门

    本文分三段,第一部分课程内容提取回顾,第二部分操作中问题总结,最后是心得。

    一、内容提取

    NumPy(Numerical Python)是高性能科学计算和数据分析的基础包,通俗点说,它是Python里已有的工具包,提前将各种功能打包好,形成不同的工具装在里面,需要的时候直接提取,用来数据分析即可(或许以后还有更多更强大的功能)。

    就好像需要砸钉子的时候去拿锤子,需要拧螺丝的时候去拿螺丝刀, 『NumPy工具包』这个叫法可以说很形象了。

    NumPy的一个重要对象是数组,操作都是针对数组进行。

    一个数组里可以存一堆数据,每一次操作就可以针对批量数据进行,不需要挨个循环到每一个元素。

    数组:

    ※ 一维数组类似于列表

    大概长这样 […, …, …, …, …]

    ※ 二维数组类似于矩阵

    大概长这样

    […,…,…

    …,…,…]

    对数组的操作:

    ※ 创建——举例🌰

    np.zeros(5)   5个元素全0的数组

    np.ones(5)   5个元素全1的数组

    np.empty(10)   10个元素的空数组,会返回随机数

    np.arrange(10)   元素从0到9的数组

    np.arrange(启示值, 步长, 终值)   等差数列数组

    np.random.rand(5)   5个[0,1)之间的随机数数组

    np.random.randint(1, 10, size=8)   指定范围内的随机整数数组

    np.zeros((2,3))   两行三列0,以元组(2,3)为参数

    np.random.rand(3, 5)   三行五列随机二维数组,直接以3,5为参数,不同于上

    ※ 索引切片——举例🌰

    总的来说,使用[ ]进行操作。

    一维数组切片举例:

    arr[3:7] arr[3]  针对切片的修改会影响原来数组

    arr[3:7].copy()   相当于生成一个切片的副本,针对副本的修改不会影响原来数组

    二维数组切片举例:

    mat[0] 取一行

    mat[3][3]  mat[3,3]  取第三行第三列某个元素

    索引切片混用:

    mat[0:3, 1]  0~2行,第1列

    mat[2:, 2:]  第2行到最后,第2列到最后

    布尔型索引

    相当于建一串True和False的筛子作为索引,只有True对应的值能通过(印象深刻,值得琢磨)

    ※ 数组运算

    总的来说采用一一对应操作,与矩阵计算不同。

    可对一个二维数组操作,比如一个数组对一个数进行+ - * /运算。

    也可在两个数组之间操作,两个数组之间+ - * /,对应元素直接运算,但要行列数一样。

    np下的常用函数(工具包里常用工具):

    np.sum()   数组求和

    np.sum(数组名,axis=1)   对行求和

    np.sum(数组名,axis=0)   对列求和

    注:sum换成mean就以求每列的均值,换成max和min是求每列最大最小值

    np.sort(数组名[:, 0] )对第0列排序,值从小到大

    np.unique(数组名[:, 列索引]某列中不重复的数据

    np.where(判断条件,True下的结果,False下的结果)对应不同条件,产生不同结果


    二、问题总结:

    1、一般开始之前使用 『import numpy as np』导入工具包,接下来的命令前要带上『np.』,说明是从这个工具包里取的工具。

    2、出错的话,注意看error说明,^代表可能出问题的地方,可着重关注。

    3、括号要成对!检查tips:将鼠标点在一个括号处,和它成对的括号就会变色。

    4、凡是提到『第几行』,指的都是索引(0,1,2……),而非通常所说的行数(1,2,3……),因为审题不对做错了好几题🤣。。

    5、做完作业对答案的时候,发现很多写了几行命令才实现的操作,其实用一条语句即可实现,比如以下这个简单的定义过程。

    估计学得多了,最主要是用得多了,慢慢能掌握更多类似的简练语句。

    三、心得:

    本节课没有来及听完回放,最后的红酒例子那里只是照着课件敲了一遍,感觉还是跟听课不大一样。

    听课之所以更有效,是因为有老师的思路,她会在一些地方给出恰当的解释和指导,这些貌似一带而过的一两句话,听进去了,就会立竿见影起效。对于一张白纸来说,多画一笔,就能更清晰一分,即便只是草图。

    如果要靠自己去获取,可能得等到积累到一定程度,思考框架差不多也建立起来的时候,方能前后串起来,get到其中的一点真意。

    所以,这次算是教训。


    Python笔记系列(不只是笔记):

    Python 学习笔记 Lesson01

    Python 学习笔记 Lesson 02 & 03

    相关文章

      网友评论

        本文标题:Python 学习笔记 Lesson 04

        本文链接:https://www.haomeiwen.com/subject/ahtljxtx.html