数据科学必备-numpy
前面的总结
我们前面已经学过了python 的基础知识,完成了实验楼的挑战,但总觉得python还有点东西没学完。我觉得还缺点什么,我觉得基础语法还应该再了解一下这两个内容,当然只了解一下皮毛就行,基本的概念,比如如何定义一个函数,传递参数;列表的基本操作等。然后我们实际操作中再去强化即可。
- python 列表 http://c.biancheng.net/python/list_tuple_dict/
- python 函数 http://c.biancheng.net/view/2247.html
以后的学习计划
我们可以基本按照AI MOOC这个网站的方式
https://mooc.ai-xlab.com
-
python基础 包含
numpy pandas matplotlib
-
机器学习基础(主要是常见机器学习算法,大部分我们会以后以实战方式一一实现)
- 线性回归算法 Linear Regression
- 支持向量机算法 (Support Vector Machine,SVM)
- 最近邻居/k-近邻算法 (K-Nearest Neighbors,KNN)
- 逻辑回归算法 Logistic Regression
- 决策树算法 Decision Tree
- k-平均算法 K-Means
- 随机森林算法 Random Forest
- 朴素贝叶斯算法 Naive Bayes
- 降维算法 Dimensional Reduction
- 梯度增强算法 Gradient Boosting
-
深度学习(神经网络)
-
综合实战
jupyter notebook
接下来,我们还要不断使用这个jupyter notebook来完成我们的每一次任务。
之前已经介绍了如何用VS Code中整合jupyter notebook,大部分同学已经顺利搭建了。
那么原生的jupyter notebook究竟什么样?其实我们也可以不用VS Code来启动jupyter notebook。
打开你的命令行,输入jupyter-notebook
,如果你已经安装了,就会顺利启动,接着新建,就能敲代码了。如果提示没有这个命令,你只需要输入
pip install jupyter
安装好了,然后再启动jupyter-notebook
。
你究竟如何使用jupyter notebook, 这个随意!
numpy pandas matplotlib
numpy pandas matplotlib
这三个工具,是python数据科学必须掌握的。
请使用 pip list
命令,看看你是否安装了这3个包,如果没有安装,请先安装。
这次必须要安装numpy,如果你之前的作业完成了,你的本地numpy应该是已经安装了。如果你在jupyter notebook 输入 这个代码块
import numpy as np
没有报错的话,就是安装成功,可以用了。
对了,import numpy as np
这个意思是啥,请你们看看 http://c.biancheng.net/view/2397.html
这一句的意思就是导入numpy模块,并重新命名为np。
numpy
numpy
(Numerical Python的简称) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。它是后面pandas和matplotlib的基础,也是一切数据分析的基础。
推荐两个教程,第二个 是我更加推荐的。
- 【机器学习基础库】Numpy数据计算从入门到实战 https://www.bilibili.com/video/BV1U7411x76j
- 《跟着孙兴华学习Numpy基础》python Numpy 教程 https://www.bilibili.com/video/BV1R64y1u7zX?p=3
这两个教程,看任意一个即可,记得,用你的jupyter notebook不停敲代码来体会numpy
的各种优点
科赛(和鲸)Amazing
我突然找到了一个可以在线敲代码的网站,免去搭建任何环境,在线玩就行:
科赛(和鲸)https://www.kesci.com/
这将是我们未来经常光顾的网站了,我们可以在线完成基于python和R的数据分析。同时,我们还可以参加上面的挑战赛。我希望,未来有一天智能医学社可以在上面赢得奖金!
下面,不停的在上面敲代码吧。不过,里面的服务器环境,每个月只有20 h,但我觉得足够了!
【镇站之宝】科赛优质教程&项目集锦
之后的pandas
和 matplotlib
也是在里面玩!加油!越来越有趣了!
最后的作业
- 实现视频教程 https://www.bilibili.com/video/BV1U7411x76j?p=6P6
numpy实现数组中满足条件个数的计算,请用numpy实现
- Consider two arrays A and B of shape (8,3) and (2,2). How to find rows of A that contain elements of each row of B regardless of the order of the elements in B? (★★★)')
中文翻译:给定一个8X3的数组A和一个2X2的数组B,从A中找出满足条件的行,条件是B中每一行都有元素(至少一个)出现在A中这一行中?(不考虑B中每行元素顺序)(提示: np.where)
e.g. B = [[3,1],[2,4]],A = [[3,2,0],[0,1,5],...],那么这个A的第一行,也就是[3,2,0]是符合要求的,因为包含了B中第一行[3,1]中的3,也包含第二行[2,4]中的2。但A的第二行[0,1,5]就不符合要求,因为只含有B中第一行的元素1,第二行[2,4]没有任何一个元素包含在[0,1,5]。
A = np.random.randint(0,5,(8,3))
B = np.random.randint(0,5,(2,2))
- 提交作业
-
将两个作业放到同一个jupyter notebook分别作为2个代码块,提交到
https://github.com/hao203/AIMED-python_basics.git -
首先gitclone 将项目克隆到本地
将你的ipynb命名为姓名
.ipynb 并存放在numpy文件夹,然后commit
,push
-