1. 模块的导入方式:
import numpy #将numpy全部导入,后续使用其中的函数时需加上numpy.前缀
import numpy as np #将numpy全部导入且简记为np,后续使用时加np.前缀即可
from numpy import * #将numpy全部导入,后续使用时不需加前缀,直接使用相应的函数名即可
from numpy import array #将numpy中的array函数导入,
以上方法中最为推荐的是第二种,既不会太过繁琐,也避免了在未来的代码中可能存在的函数定义的冲突。
2. numpy库
-
X[:,0]就是取矩阵X的所有行的第0列的元素;
X[:,1] 就是取所有行的第1列的元素
X[:, m:n]即取矩阵X的所有行中的的第m到n-1列数据,含左不含右 -
shape函数可用于快速读取矩阵的形状:
A.shape: 输出A矩阵;
A.shape[0]: 输出A矩阵行数;
A.shape[1]: 输出A矩阵列数. -
线性代数库:linalg
求范数:x_norm=np.linalg.norm(x, ord=None)默认: 二范数: l 2 x 1 2 + x 2 2 + . . . + x n 2 l_{2} \sqrt{x_{1}^{2} + x_{2}^{2} + ... + x_{n}^{2}} l2x12+x22+...+xn2
ord=2 二范数: l 2 l_{2} l2 同上
ord=1 一范数: l 1 l_{1} l1 ∣ x 1 ∣ + ∣ x 2 ∣ + . . . + ∣ x n ∣ \left | x_{1} \right | + \left | x_{2} \right | + ... + \left | x_{n} \right | ∣x1∣+∣x2∣+...+∣xn∣
ord=np.inf 无穷范数: l ∞ M A X ∣ x i ∣ l_{\infty} MAX \left | x_{i} \right | l∞MAX∣xi∣
3. 遇到的其他函数
- math.floor(x): 返回一个≤x的最大整数.
- random.sample(A,n): 在A中随机取n个元素返回.
- train_test_split(w,x,y,z): 对于待划分的数据集w, 其标签为x, 测试集占比为y, 随机数种子为z. (from sklearn)
- assert用法: 如果其后的判断语句为真,则继续执行后续语句;如果为假,则抛出异常,程序中断报错.
4. 函数与类的定义
4.1 类的定义
- 类名一般用大驼峰法命名;
- 一般需要写初始化函数,在调用类时对类的实例进行初始化;
- 初始化函数:
def __init__(self) # 可以有多个参数,但第一个参数必须是self
4.2 函数的定义
- 函数元信息:
- -> type :表示返回值应是某种类型(不符合可强制转换)
- 参数后加冒号加类型:用于注解该参数的类型(Python解释器不会对这些注解添加任何的语义)
e.g.:
表示参数point1是ndarray类型,point2是list类型,返回值类型为floatdef euler_distance(point1: np.ndarray, point2: list) -> float
这篇博客介绍了Python的基础语法,重点讲解了模块导入的方式,特别是推荐的导入方法。详细探讨了numpy库的使用,如选取矩阵列元素和获取矩阵形状。还提到了其他实用函数,如math.floor和random.sample,并讨论了数据划分的train_test_split函数。最后,文章涵盖了函数和类的定义,包括初始化函数和函数元信息的注解。
2734

被折叠的 条评论
为什么被折叠?



