python - 将某种指数分布转换为正态分布
问题描述
我有以下指数分布,使用以下代码生成:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import random
np.random.seed(1)
tags_ratio = np.random.exponential(1/25, 1000)
plt.hist(tags_ratio, range=(0, 1), bins=100)
plt.show()
我正在尝试将我的数据转换tags_ratio
为正态分布,但没有成功。
尝试使用 log 函数和 square 函数。它给出了不错的结果。但我对更多的想法很感兴趣。也许更复杂。
解决方案
您可以尝试看看这是否有帮助:
from scipy.stats import boxcox
tags_ratio = boxcox(tags_ratio, 0.3)
plt.hist(tags_ratio)
plt.show()
结果:
有关 Box-Cox 的更多解释和理论,请单击此处。
推荐阅读
- c++ - 使用基于范围的 for 循环取消引用向量指针
- java - FileOutputStream 与 java 8 并尝试资源 gettng 错误
- android - 为 okhttp 形成 RequestBody 参数的问题
- python-3.x - Python默认“排序”使用合并还是快速排序?使用了什么算法?
- python - 芹菜如恶魔
- android - 如何实现 CSS 网格布局?
- blazor - Blazor 中的不同方法调用
- laravel - 在 laravel 中,getClientOriginalName 为 null
- vb.net - VB.NET 中的 DbParameter 声明问题
- python - 对单个 JSON 字符串的多个 API 调用