-
Notifications
You must be signed in to change notification settings - Fork 45
Open
Labels
Description
入门作业
入学作业:
1.原版(在此感谢liuxilin同学的指导)
2.参考群里大神WhaleChen修改
进阶作业:
01:求解以下函数相对 x 的导数:
import sympy as sp
# 将x 符号化
x = sp.Symbol('x')
# 定义 f(x)
f = sp.sin(x**2)*x
# 使用 diff 求导
result = sp.diff(f,x);result2*x**2*cos(x**2) + sin(x**2)
求导结果为 $$ 2x^2cos(x^2) + sin(x^2) $$
进阶作业:
01.向量化 (vectorization) 计算是科学计算中必备的技巧。调研 Python 的 numpy 库中「向量化」的概念。
向量化计算是一种特殊的并行计算方式,相比于一般程序在同一时间只执行一个操作的方式,它可以在同一时间内执行多次操作,通常是对不同的数据执行同样的一个或一批指令,或者说把指令应用于一个数组/向量。在R的基本运算中,随处可见向量化计算的影子。
向量化其实是一种矩阵运算思想的表现,矩阵计算可以将一些矩阵计算进行简化并且可以提速。
02: 熟悉概念之后,使用标准正态分布生成一个 100 元素的数组(以 0 为均值),用向量化方法将这个数组中 < 0 的元素设置成 0。
问题拆分:
01.生成标准化正态分布数组
方法:np.random.normal(size=100)
02.向量化数组中大于零的元素并替换为0
方法:mask = data <0;data[mask] =0;data
import numpy as np
#生成正态分布数组
data = np.random.normal(size=100)
#获得判断数组数值是否符合<0 条件的布尔数组
mask = data <0
# 将布尔数组作为索引 向量化赋值。显示结果
data[mask] =0;data