Skip to content

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

@shiyingyuxianshu

Description

@shiyingyuxianshu

入门作业

入学作业:
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

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions