Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

陈东濠完成DL102 入学任务啦 #95

Open
shiyingyuxianshu opened this issue Oct 6, 2017 · 0 comments
Open

陈东濠完成DL102 入学任务啦 #95

shiyingyuxianshu opened this issue Oct 6, 2017 · 0 comments

Comments

@shiyingyuxianshu
Copy link

入门作业

入学作业:
1.原版(在此感谢liuxilin同学的指导)
2.参考群里大神WhaleChen修改

进阶作业:

01:求解以下函数相对 x 的导数: $$x=Sin(x^2)x$$

import sympy as sp

# 将x 符号化
x = sp.Symbol('x')
# 定义 f(x)
f = sp.sin(x**2)*x
# 使用 diff 求导
result = sp.diff(f,x);result
2*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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants