Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions