- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我注意到以下代码需要 0.01 秒,考虑到我需要它运行大约一百万次,这太多了。
mydist = stats.norm(mean, 2)
for x in range(5,30):
probplak.append(mydist.pdf(x))
有没有其他方法可以得到类似的结果(一个值列表,给出一个平均值和 x 值远离平均值的标准偏差?)。
最佳答案
mydist.pdf
可以传递一系列值而不是单个标量:
probplak = mydist.pdf(range(5, 30))
这比使用 for 循环更快地产生结果。
例如,
import scipy.stats as stats
mean = 15
mydist = stats.norm(mean, 2)
probplak = mydist.pdf(range(5, 30))
# array([7.43359757e-07, 7.99187055e-06, 6.69151129e-05, 4.36341348e-04,
# 2.21592421e-03, 8.76415025e-03, 2.69954833e-02, 6.47587978e-02,
# 1.20985362e-01, 1.76032663e-01, 1.99471140e-01, 1.76032663e-01,
# 1.20985362e-01, 6.47587978e-02, 2.69954833e-02, 8.76415025e-03,
# 2.21592421e-03, 4.36341348e-04, 6.69151129e-05, 7.99187055e-06,
# 7.43359757e-07, 5.38488002e-08, 3.03794142e-09, 1.33477831e-10,
# 4.56736020e-12])
使用 IPython 进行速度比较:
In [112]: %timeit mydist.pdf(range(5, 30)) # <-- passing sequence
10000 loops, best of 3: 134 µs per loop
In [113]: %timeit [mydist.pdf(x) for x in range(5,30)] # <-- using a loop
100 loops, best of 3: 2.95 ms per loop
另请注意 stats.norm.pdf
可以为 x
以及 loc
(即 mean
)和 scale
传递类似数组的参数(即标准偏差)。这意味着如果你需要运行这段代码一百万不同的方法和尺度,那么你可以计算一次调用 stats.norm.pdf
即可同时获得所有 probplak
:
means = [1,2,3]
std_devs = [10,20,30]
probplaks = stats.norm.pdf(np.arange(5, 30)[:,None], means, std_devs)
返回形状为 (25, 3)
的数组。如果您将 means
和 std_devs
更改为具有一百万个值的列表,则 probplaks.shape
将是 (25, 10**6 )
。
通过一次调用 stats.norm.pdf
计算所有概率比在 Python 循环中调用一百万次 mydist.pdf
快得多:
In [117]: %timeit stats.norm.pdf(np.arange(5, 30)[:,None], means, scales)
10000 loops, best of 3: 135 µs per loop
In [118]: %timeit [[stats.norm(m, s).pdf(x) for x in range(5,30)] for m,s in zip(means,scales)]
10 loops, best of 3: 64.4 ms per loop
关于python - 迭代调用 stats.norm.pdf() 运行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50340791/
所以我已经粘贴了我的完整代码供您引用,我想知道这里的ppf和cdf有什么用?你能解释一下吗?我做了一些研究,发现 ppf(百分比点函数)是 CDF(累积分布函数)的倒数 如果确实如此,如果我将 ppf
我正在使用我在互联网上找到的一段代码 ( here ) 来计算点和线段之间的距离。这是代码: float dist_Point_to_Segment( Point P, Segment S) {
我正在基于 MongoDB 实现博客。 让我们先看看 Mongo 家伙如何推荐我们存储博客文章及其评论 (http://www.mongodb.org/display/DOCS/Schema+Desi
我在汉明距离的帮助下寻找视频中两个图像的差异。这是我的代码: #include #include "opencv2/opencv.hpp" using namespace cv; int main(
假设我们有以下文档结构: class BlogPost { [MongoIdentifier] public Guid Id{get;set;} public string Body
使用 MongoDb NORM 驱动程序,有谁知道是否可以将光标移至类似于下面的“查询”集合,以便可以检索“页面”文档以及查询文档的总数? > var j = db.People.find().ski
有没有人有关于如何使用 NORM (C#) 在 MongoDB 中查询嵌套/内部对象的示例?例如,如果集合中的典型文档看起来像 Order/OrderItems,我如何通过 OrderItem.Qua
我正在开发一个应用程序,其模型类似于 Stack Overflow(问题/答案等...) Modelling a NoSQL Forum Application with C# / ASP.net M
我在 Pyzo 中使用 Python 3。请告诉我为什么 linalg.norm 函数不能识别 axis 参数。 这段代码: c = np.array([[ 1, 2, 3],[-1, 1, 4]])
这个问题在这里已经有了答案: How to determine the version of the C++ standard used by the compiler? (9 个回答) 关闭6年前。
我正在关注 Transfer learning and fine-tuning guide在 TensorFlow 官方网站上。指出在微调期间,batch normalization 层应该处于推理模
Batch normalization使用小批量均值和方差来归一化层输出。如果我训练一个批量大小为 100 的网络,但想在单次预测(批量大小 1)上使用经过训练的网络,我应该会遇到问题吗? 我是否应该
这是一个非常基本的问题,但我似乎找不到好的答案。 scipy 到底计算什么内容 scipy.stats.norm(50,10).pdf(45) 据我了解,平均值为 50、标准差为 10 的高斯中像 4
我不能这样做: Vector2i vec(0, 1, 2); cout (); cout ),它只适用于这种类型的元素。所以你的建议完全正确。 关于特征:不能对 Vector2i 使用 norm()
numpy.linalg.norm的作用是什么?方法? In this Kmeans Clustering sample numpy.linalg.norm函数用于获取运动质心步骤中新质心和旧质心之间
我正在使用sklearn.preprocessing.normalize符合 l1 和 l2 规范。我也想尝试 max,因为它提到: norm : ‘l1’, ‘l2’, or ‘max’ 所以我做到
我是 Java 的新手,并不知道如何搜索它。因为谷歌搜索 1。 double java 没有给我任何令人满意的搜索结果。 我遇到了这段代码: public Vector normalize() {
我正在将 Threejs 和 CannonJS 与 collada 模型一起使用 我收到此错误,但是收集每帧的物理量(即控制台计算每帧的每个物理运动)。 Uncaught TypeError: Obj
以下给出错误: print numpy.linalg.norm(2) # returns 2 print numpy.linalg.norm(2, np.inf) # returns error, p
我正在尝试获取数组中每个向量的大小,如下所示; [[0.1,1.0,2.0] [0.5,2.0,1.0] [0.4,3.0,0.5]] 我想像这样将它们放入一个新的 numpy 数组中; [[1.2]
我是一名优秀的程序员,十分优秀!