小编eva*_*n54的帖子

numba中jit和autojit有什么区别?

我很困惑,不同的是什么之间jitautojit.

我读过这个:

http://numba.pydata.org/numba-doc/0.6/doc/userguide.html

但不能说我知道两种选择之间的选择有信心.有人可以详细说明,最好是一个例子.

谢谢

python numba

10
推荐指数
1
解决办法
5780
查看次数

Python分析 - runsnakerun输出中的列是什么?

这可能非常明显,但只是想确保我理解runsnakerun中的列是什么.

名称,呼叫,RCalls,本地,/呼叫,暨,/呼叫,文件,线路,目录

以下是我认为我理解的一些内容

名称 - 被调用函数的名称

  1. 通话 - 通话次数?
  2. 文件 - 存储函数的文件
  3. Line - 在文件中定义函数的行
  4. 目录 - 具有功能定义的文件目录

剩下的就是那些我不觉得冒险的人:

  1. RCalls
  2. 本地
  3. /呼叫
  4. 附带
  5. /呼叫

谢谢

python profiling

8
推荐指数
2
解决办法
1082
查看次数

python - 如何从plt.imshow()获取数据?

我有以下代码

import scipy.misc
import matplotlib.pyplot as plt

a = plt.imshow(scipy.misc.lena())
Run Code Online (Sandbox Code Playgroud)

而我希望通过访问a或它的孩子来获取lena的数据.

究其原因,我将访问图像plt.gcf()plt.gca()

python matplotlib

7
推荐指数
1
解决办法
4088
查看次数

如何在 python 中通过 mpmath / gmpy 有效地使用 JIT?

这是我第一次尝试对 python 使用 JIT,这是我想要加速的用例。我读了一些关于 numba 的内容,它看起来很简单,但以下代码没有提供任何加速。请原谅我可能犯的任何明显错误。

我也尝试按照 cython 基本教程的建议进行操作,但时间上没有区别。 http://docs.cython.org/src/tutorial/cython_tutorial.html

我猜我必须做一些类似声明变量的事情?使用其他库?专门为所有事情使用 for 循环?如果有任何可以参考的指导或示例,我将不胜感激。

例如,我从之前的问题中知道mpmath 中的元素操作比 numpy 慢,并且其解决方案使用 gmpy 而不是 mpmath 明显更快。

import numpy as np
from scipy.special import eval_genlaguerre
from sympy import mpmath as mp
from sympy.mpmath import laguerre as genlag2
import collections

from numba import jit

import time

def len2(x):
    return len(x) if isinstance(x, collections.Sized) else 1

@jit # <-- removing this doesn't change the output time if anything it's slower with this
def laguerre(a, b, x): …
Run Code Online (Sandbox Code Playgroud)

python jit cython mpmath numba

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

使用 LAPACK/BLAS 安装 numpy 的最简单方法是什么?

我在 Ubuntu 14.04 上。

我本来希望这样做:

sudo apt-get install python-numpy
Run Code Online (Sandbox Code Playgroud)

会起作用,但事实并非如此......

我试图检查的方法是通过做locate blas,但没有发现任何相关的东西。

我想要一个不涉及我从源代码编译的解决方案。

理想的解决方案是使用 ubuntu 存储库。

python numpy blas lapack ubuntu-14.04

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

与MEMORY相关的numpy数组OBJECTS相比,列表列表的优点/缺点是什么?

我试图理解使用numpy列表对列表列表进行比较的内存和其他开销影响.dtype object

这是否随维度而变化?例如2D与3D对比ND.

我在使用numpy数组时可以想到的一些好处是类似的东西.shape,.T并且你可以np.matrix更快地将它们作为矩阵转换.

还有别的事吗?

此外,如果有人对我正在使用的对象感兴趣:

import gmpy2 as gm
gm.mpfr( '0' )                                           # <-- this is the object
Run Code Online (Sandbox Code Playgroud)

编辑:

只是为了澄清我对numpy数组类型object不是本机numpy类型的情况感兴趣.

编辑2:

有关速度的相关跟进.

与针对SPEED的numpy OBJECTS数组相比,列表列表的优点/缺点是什么?

python arrays numpy

5
推荐指数
1
解决办法
1849
查看次数

numba函数何时编译?

我正在研究这个例子:

http://numba.pydata.org/numba-doc/0.15.1/examples.html#multi-threading

它指出:

您应该确保此时已编译inner_func,因为编译必须在主线程上进行。在此示例中就是这种情况,因为我们使用jit()。

在该示例中,似乎在函数上调用jit可以确保在那时进行编译。

如果不是调用jit我们用jit指定为修饰符的参数类型使用的函数,多线程示例是否可以工作?我认为这等同于询问如果用装饰器将其绑定,是否可以在定义时编译该函数。

import numba as nb
import numpy as np
def inner_func(result, a, b):
    threadstate = savethread()
    for i in range(len(result)):
        result[i] = np.exp(2.1 * a[i] + 3.2 * b[i])
    restorethread(threadstate)
signature = nb.void(nb.double[:], nb.double[:], nb.double[:])
inner_func_nb = nb.jit(signature, nopython=True)(inner_func)
Run Code Online (Sandbox Code Playgroud)

import numba as nb
import numpy as np
signature = nb.void(nb.double[:], nb.double[:], nb.double[:])
@nb.jit(signature, nopython=True)
def inner_func(result, a, b):
    threadstate = savethread()
    for i in range(len(result)):
        result[i] = np.exp(2.1 * a[i] …
Run Code Online (Sandbox Code Playgroud)

python multithreading jit numba

5
推荐指数
1
解决办法
422
查看次数

使用 pip 升级到 numba 0.16 会导致错误

我使用的是 Ubuntu 14.04,并且 numba 0.15 运行良好。

我跑了:

pip install --user --upgrade numba
Run Code Online (Sandbox Code Playgroud)

升级到 numba 0.16 但现在当我尝试导入 numba 时出现以下错误:

~/.local/lib/python2.7/site-packages/numba/__init__.py in <module>()
      4 from __future__ import print_function, division, absolute_import
      5 import re
----> 6 from . import testing, decorators
      7 from ._version import get_versions
      8 from . import special, types, config

~/.local/lib/python2.7/site-packages/numba/decorators.py in <module>()
      5 import warnings
      6 from . import sigutils
----> 7 from .targets import registry
      8
      9 # -----------------------------------------------------------------------------

~/.local/lib/python2.7/site-packages/numba/targets/registry.py in <module>()
      1 from __future__ import print_function, division, …
Run Code Online (Sandbox Code Playgroud)

python numba

5
推荐指数
1
解决办法
3231
查看次数

为什么不总是设置框架宽度/高度?

有大量问题和人们询问如何设置框架高度/宽度的相应答案。下面是一个小样本:

我知道 OpenCV 有时会在设置框架高度/宽度时出现问题。就我而言,我可以将宽度/高度范围设置为 640 x 512。相机的驱动程序由制造商提供(即不是 v4l2 或类似的东西)。我可以提供哪些调试信息,或者我如何帮助他们理解为什么我不能设置更高的宽度/帧。驱动程序是否有问题,OpenCV 两者都有?

import cv2
c = cv2.VideoCapture(1)
c.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 1280)
c.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 1024)
Run Code Online (Sandbox Code Playgroud)

我在 Python 中使用 Ubuntu 14.04 和 OpenCV 2.4.8。

我发现这个问题有一个公认的答案,表明我应该能够让它发挥作用。我不知道如何做这部分:

您可以做的是调查您的相机驱动程序,为 OpenCV 制作补丁并将其发送到 code.opencv.org。这样别人会喜欢你的工作,就像你喜欢别人的一样。

python camera opencv driver

5
推荐指数
1
解决办法
5403
查看次数

何时使用.shape以及何时使用.reshape?

我试图.reshape在一个numpy数组上使用时遇到了内存问题,并想知道我是否能够以某种方式重塑阵列,这将是非常好的.

我意识到我可以通过简单地改变.shape值来重塑数组.不幸的是,当我尝试使用时,.shape我再次遇到了一个内存错误,让我觉得它没有重塑到位.

我想知道我什么时候使用另一个?

任何帮助表示赞赏.

如果您想了解更多信息,请告诉我们.

编辑:

我添加了我的代码,以及在重要的情况下如何创建我想要重塑的矩阵.

根据您的记忆更改N值.

import numpy as np
N = 100
a = np.random.rand(N, N)
b = np.random.rand(N, N)
c = a[:, np.newaxis, :, np.newaxis] * b[np.newaxis, :, np.newaxis, :]
c = c.reshape([N*N, N*N])
c.shape = ([N, N, N, N])
Run Code Online (Sandbox Code Playgroud)

EDIT2:这是一个更好的代表.显然,转置似乎很重要,因为它将数组从C连续变为F连续,并且在上面的情况下得到的乘法是连续的,而在下面的那个不是.

import numpy as np
N = 100
a = np.random.rand(N, N).T
b = np.random.rand(N, N).T
c = a[:, np.newaxis, :, np.newaxis] * b[np.newaxis, :, np.newaxis, :]
c = c.reshape([N*N, …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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