我使用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) 我现在将matplotlib图嵌入一个简单的GUI中。在自定义图的过程中,我发现在使用图在图下添加工具栏时出现了一些显示问题NavigationToolbar2TkAgg。现在,如果我们在底部的左侧添加工具栏,则当鼠标在绘图周围移动时,我想禁用在绘图底部的右侧显示坐标。有什么想法吗?
提前致谢。
更新:
对于一个简单的图形plt.plot(x,y),默认情况下,坐标会显示在底部的左侧,同时鼠标也会移动,因为工具栏(如“ home”,“ zoom”等)默认显示在顶部。在此处查看在google驱动器上截取的屏幕会更加清晰,我以黄色突出显示了坐标,该坐标可以在图像的左下方找到。感谢GWW和jgysland提醒我。
调整后兰特指数 (ARI) 是比较两个集群的流行指标。不幸的是,在执行聚类分析并比较它们之后,我通常会得到负的 ARI。我如何解释这些负面的 ARI 来描述这些集群的差异?然后,如果负的 ARI 毫无意义,是否有任何关于适当措施的建议?
我想通过索引将短数组中的值分配给大数组。简单代码如下:
\nimport 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)\nRun Code Online (Sandbox Code Playgroud)\n我尝试过其他可能相关的方法,例如np.takenumba's jit,但似乎上面是最快的方法。它也可以使用 来加速multiprocessing。我有profile代码,最多的时间是在下面的行,因为它运行了很多次(这里是 20 次)
a[index_a[:, i], i] = b[index_b, i]\nRun Code Online (Sandbox Code Playgroud)\n在使用之前我有机会让它更快吗multiprocessing? …