np.random常用功能记录

先放官方手册链接…
https://numpy.org/doc/stable/reference/random/index.html?highlight=random#module-numpy.random

环境

import numpy as np
import numpy.random as rd #问就是懒...
import matplotlib.pyplot as plt
import pandas as pd
from scipy import stats

常用功能小结

rd.seed(a) #控制每次随机数结果一致,便于复现
rd.rand(a,b) #最简单常用的生成随机数的功能。生成 a 列 b 行在[0,1)内均匀分布的随机数
rd.uniform(a,b,size) #.rand的自定上下限版本,生成size个在[a,b)范围内均匀分布的随机数
rd.randint(a,b,size) #.rand的自定上下限整数版本,生成size个在[a,b)范围内均匀分布的随机*整*数
rd.randn(a,b) #.rand的标准正态分布版本,好用!a,b只限制生成随机数的shape
rd.normal(μ,σ,size) #相比于.randn可以自定义均值 μ 和 σ
rd.poisson(a,size) #有放回抽样。a是单位时间/空间下期望事件发生的概率
rd.hypergeometric(ngood, nbad, nsample, size) #无放回抽样(怒 为什么概率论考试不能带电脑啊)。
#小球问题为例,箱子中有3个红球(ngood=3)和7个蓝球(nbad=7),每次取2个球(nsample=2)  
#问取到至少一个红球的期望:  np.sum(rd.hypergeometric(3,7,2,10000)>=1)/10000 = 0.5335

以及一个自己不太常用但很有意思的 rd.choice,手册:
https://numpy.org/doc/stable/reference/random/generated/numpy.random.choice.html?highlight=choice#numpy.random.choice

test = rd.choice(['a','b','c','d'],size = 100000, p=[0.1,0.1,0.5,0.3])
df_test = pd.DataFrame(data={'result':test})
df_test.groupby('result')['result'].count()/100000

# result
# a    0.09998
# b    0.09983
# c    0.49971
# d    0.30048
# Name: result, dtype: float64
好的,我看一下。 ```python import numpy as np import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap from sklearn.datasets import make_moons from sklearn.model_selection import train_test_split def sigmoid(x): return 1 / (1 + np.exp(-x)) def relu(x): return np.maximum(0, x) def softmax(x): exp_x = np.exp(x) return exp_x / np.sum(exp_x, axis=1, keepdims=True) def cross_entropy(y_pred, y_true): m = y_pred.shape[0] p = softmax(y_pred) log_likelihood = -np.log(p[range(m), y_true]) loss = np.sum(log_likelihood) / m return loss def plot_decision_boundary(model, X, y): cmap = ListedColormap(['#FF0000', '#00FF00', '#0000FF']) h = 0.02 x_min, x_max = X[:, 0].min() - 0.5, X[:, 0].max() + 0.5 y_min, y_max = X[:, 1].min() - 0.5, X[:, 1].max() + 0.5 xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) Z = model(np.c_[xx.ravel(), yy.ravel()]) Z = np.argmax(Z, axis=1) Z = Z.reshape(xx.shape) plt.contourf(xx, yy, Z, cmap=cmap) plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap) plt.show() def load_dataset(): X, y = make_moons(n_samples=1000, noise=0.2, random_state=100) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) return X_train, X_test, y_train, y_test ``` 这个文件中定义了一些神经网络常用的函数,如sigmoid、relu、softmax、交叉熵损失函数等。还有一个绘制决策边界的函数`plot_decision_boundary`和一个生成数据集的函数`load_dataset`。这些函数都是比较常用的,看起来没有问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值