小编Elk*_*kan的帖子

什么是 numpy.core._multiarray_umath.implement_array_function 以及为什么它花费大量时间?

我使用numpy 进行大规模数据分析,有很多矩阵实现(例如,,,,dot)。在 Jupyter Notebook 中之后,我发现这花费了大量时间,总共250秒中的38秒,其中有大量(67139/66979)。我知道其他功能应该优化,但我认为是否也可以抑制这个功能,这有什么用?count_nonzerolinalg.svd%prunnumpy.core._multiarray_umath.implement_array_functioncumtimencall

这是我的%prun输出:

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
 1848  203.845    0.110  242.582    0.131 stacking.py:130(_rda_cv)
 67139/66979   27.980    0.000   38.901    0.001 {built-in method numpy.core._multiarray_umath.implement_array_function}
    4    8.181    2.045  251.415   62.854 stacking.py:192(_model_selection)
14883    7.942    0.001    7.942    0.001 {method 'reduce' of 'numpy.ufunc' objects}
11096    2.107    0.000    2.353    0.000 linalg.py:1468(svd)
    4    0.154    0.038    0.188    0.047 stacking.py:20(_get_qvalues)
    1    0.149    0.149  251.887  251.887 stacking.py:255(fit)
   16    0.149    0.009    0.508    0.032 stacking.py:70(_construct_cov) …
Run Code Online (Sandbox Code Playgroud)

python numpy

6
推荐指数
1
解决办法
6246
查看次数

禁用在matplotlib图中显示坐标

我现在将matplotlib图嵌入一个简单的GUI中。在自定义图的过程中,我发现在使用图在图下添加工具栏时出现了一些显示问题NavigationToolbar2TkAgg。现在,如果我们在底部的左侧添加工具栏,则当鼠标在绘图周围移动时,我想禁用在绘图底部的右侧显示坐标。有什么想法吗?

提前致谢。

更新:

对于一个简单的图形plt.plot(x,y),默认情况下,坐标会显示在底部的左侧,同时鼠标也会移动,因为工具栏(如“ home”,“ zoom”等)默认显示在顶部。在此处查看在google驱动器上截取的屏幕会更加清晰,我以黄色突出显示了坐标,该坐标可以在图像的左下方找到。感谢GWW和jgysland提醒我。

python plot matplotlib

3
推荐指数
1
解决办法
1735
查看次数

我们如何解释负调整兰特指数?

调整后兰特指数 (ARI) 是比较两个集群的流行指标。不幸的是,在执行聚类分析并比较它们之后,我通常会得到负的 ARI。我如何解释这些负面的 ARI 来描述这些集群的差异?然后,如果负的 ARI 毫无意义,是否有任何关于适当措施的建议?

pattern-recognition cluster-analysis machine-learning

3
推荐指数
1
解决办法
2772
查看次数

numpy array:快速将短数组分配给带索引的大数组

我想通过索引将短数组中的值分配给大数组。简单代码如下:

\n
import numpy as np\n\ndef assign_x():\n    a = np.zeros((int(3e6), 20))\n    index_a = np.random.randint(int(3e6), size=(int(3e6), 20))\n    b = np.random.randn(1000, 20)\n    for i in range(20):\n        index_b = np.random.randint(1000, size=int(3e6))\n        a[index_a[:, i], i] = b[index_b, i]\n    return a\n\n%timeit x = assign_x()\n# 2.79 s \xc2\xb1 18.4 ms per loop (mean \xc2\xb1 std. dev. of 7 runs, 1 loop each)\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试过其他可能相关的方法,例如np.takenumba's jit,但似乎上面是最快的方法。它也可以使用 来加速multiprocessing。我有profile代码,最多的时间是在下面的行,因为它运行了很多次(这里是 20 次)

\n
a[index_a[:, i], i] = b[index_b, i]\n
Run Code Online (Sandbox Code Playgroud)\n

在使用之前我有机会让它更快吗multiprocessing? …

python numpy

2
推荐指数
1
解决办法
863
查看次数