创建一个项目
- 新建一个文件夹即可
- 新建一个虚拟环境
- 查看已有的虚拟环境命令
02 搭建环境
- anaconda —Python
- pycharm /vscode — IDE
03虚拟环境
- 进入anaconda安装目录-》选择anaconda prompt 就会进入专有的命令行下面的命令都是在这里面敲的
- 查看已有的虚拟环境命令 :
conda env list
- 查看使用的Python版本命令(我的base 环境是3.8.2):
python -V - 创建虚拟环境命令:
conda create -n py310 python=3.10
- 激活虚拟环境命令:
conda activate py310
- 停止某个虚拟环境
conda deactivate
04 使用虚拟环境
1.打开pycharm 窗口右下角点击Python 3.8 会弹出一个窗口,选择interpreter setting
2.再打开的新窗口选择 add interpreter,选中你自己创建的环境即可
框架Framework
- 避免重复造轮子
- 偏底层
1.三剑客- 科学计算:numpy
- 二维表处理: pandas
- 数据可视化: matplotlib
- 偏上层的框架:
2.机器学习- sklearn 实现了所有机器学习算法!!!重点学习
- 科研,学术,工业皆可
3.深度学习
- TensorFlow 老牌巨头,日薄西山
- pytorch 学术新贵,日益火爆!!!重点学习
- paddlepaddle 国内 百度,学好上面两个,就好转这个了
- 只提供积木,本身并没有实现任何算法
05 科学计算神器**
- numpy
- pytorch
06 IDE选择问题
- 传统开发 web,GUI,游戏开发,运维开发 pycharm,vscode首选,强大的提醒和补全
- 数据科学 加载大量的数据 算法开发或调试:首选jupyter,玉皇大帝角色
- 线上运行时:py文件
- import torch (不是pytorch)
07 编程要领
-
现学现卖
-
Print 一切皆可打印
-
Type 一切皆可查看类型,因为是动态语言,
-
Dir 一切皆可查看功能
-
查看文档
-
jupyter 快键键:
-
Tab键补全
-
shift + tab 查看方法文档
-
Ctrl+ / 注释反注释
-
Ctrl + enter
-
shift+ enter
-
代码模式 enter
-
命令模式 esc
-
命令模式下 M markdown Y code模式
-
命令模式下 b 下面加一个cell,a上面加一个cell
-
dd 删除当前cell
08 pytorch 安装
官网 https://pytorch.org/get-started/locally/
注意电脑系统不同,生成的命令是不同的。
选择 stable2.0.1 OS选Mac package 选 conda language 选 python
compute platform 选default ,如果有独立显卡可以选cuda打头的
然后复制下面的代码即可
MPS acceleration is available on MacOS 12.3+
conda install pytorch::pytorch torchvision torchaudio -c pytorch
09 科学计算
- 看得懂公式
- 把公式变成代码
- 矢量计算
- 矩阵计算
10 矢量
-
标量 scalar 单个数 维度为0
-
向量 矢量 : vector 一串数 一维数组 维度为1
-
矩阵 matrix 【m,n】一个面数 二维数组 维度为2
-
张量 tensor 【N,C,H,W】 高维数组
11 易混概念
- 向量,矢量,一维数组
- 向量的模,向量的长度,向量的二范数
- 向量的内积,向量的点乘积,@
12 arr = np.array([1,2,3])
-
arr **2 即可计算每个元素的平方
-
(arr**2).sum()可以对前面的数组求和
-
np.sqrt() 求开方
-
np.linalg.norm(arr) 求数组的二范数
-
ab内积 == a 的模乘以b的模 乘以cos ab的夹角,
-
Numpy下两个向量求内积方式有3种
-
a*b 之后对结果进行遍历相加
-
直接用 a@b求
-
直接用a.dot(b)求
-
元素级相乘 a*b 是一个跟ab一样长的向量。
-
向量相乘 向量点乘积 是个数 a@b
-
求两个向量相似度
-
cosine_similarity_a_b = a@b/np.linalg.norm(a)/np.linalg.norm(b)
-
矩阵相乘 前提条件 矩阵a如果是M行N列,矩阵b必须是N行K列。
-
矩阵相乘的过程其实就是矩阵a每行和b每列的内积。
-
快速的生成一个矩阵
-
1. 用np.array(list(range(12))) 产生一个一维数组
-
2. 再用 arr.reshape(3,4)生成一个3行4列的二维矩阵,后面的4可以写成-1,这样计算机会自己算几列。
-
矩阵相乘: 矩阵a @ 矩阵b即可,计算前必须验证两个矩阵是否可以相乘
-
两个矩阵的ndim方法返回值必须是2,第一个矩阵的列必须和第二矩阵的行必须相同
-
ndim 返回数组的纬度,是一个数字
-
Shape 表示各维度的大小,返回的是一个元组
-
Dtype 数组数据类型,比如 int32
-
astype astype:转换数组的数据类型。
-
int32 --> float64 完全ok
-
float64 --> int32 会将小数部分截断
-
string --> float64 如果字符串数组表示的全是数字,也可以用astype转化为数值类型
网友评论