相关疑难解决方法(0)

为什么numba比numpy更快?

我无法弄清楚为什么numba在这里击败numpy(超过3x).我是否在这里进行基准测试时遇到了一些根本性的错误?看起来像numpy的完美情况,不是吗?请注意,作为一个检查,我还运行了一个组合numba和numpy(未显示)的变体,正如预期的那样,与没有numba的numpy相同.

(顺便说一下这是一个后续问题:数字处理2d阵列的最快方法:数据帧vs系列vs阵列vs numba)

import numpy as np
from numba import jit
nobs = 10000 

def proc_numpy(x,y,z):

   x = x*2 - ( y * 55 )      # these 4 lines represent use cases
   y = x + y*2               # where the processing time is mostly
   z = x + y + 99            # a function of, say, 50 to 200 lines
   z = z * ( z - .88 )       # of fairly simple numerical operations

   return z

@jit …
Run Code Online (Sandbox Code Playgroud)

python numpy numba

20
推荐指数
4
解决办法
1万
查看次数

具有广播的稀疏 Scipy 矩阵和向量的元素最大值

我需要一个快速的逐元素最大值,它将 n×m scipy 稀疏矩阵元素的每一行与稀疏的 1×m 矩阵进行比较。这在 Numpy 中使用np.maximum(mat, vec)通过 Numpy 的广播完美地工作。

但是,Scipy's.maximum()没有广播。我的矩阵很大,所以我不能将它转换为一个 numpy 数组。

我目前的解决方法是使用mat[row,:].maximum(vec). 这个大循环正在破坏我的代码效率(必须多次执行)。我的缓慢解决方案在下面的第二个代码片段中 - 有更好的解决方案吗?

# Example
import numpy as np
from scipy import sparse

mat = sparse.csc_matrix(np.arange(12).reshape((4,3)))

vec = sparse.csc_matrix([-1, 5, 100])

# Numpy's np.maximum() gives the **desired result** using broadcasting (but it can't handle sparse matrices):
numpy_result = np.maximum( mat.toarray(), vec.toarray() )
print( numpy_result )
# [[  0   5 100]
#  [  3   5 100]
#  [ …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy sparse-matrix elementwise-operations

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

以最快的方式处理大型数据集的Hausdorff距离

我的数据集中的行数是500000+。我需要id自己与他人之间各个人的Hausdorff距离。并对整个数据集重复

我有一个庞大的数据集。这是一小部分:

df = 

id_easy ordinal latitude    longitude            epoch  day_of_week
0   aaa     1.0  22.0701       2.6685   01-01-11 07:45       Friday
1   aaa     2.0  22.0716       2.6695   01-01-11 07:45       Friday
2   aaa     3.0  22.0722       2.6696   01-01-11 07:46       Friday
3   bbb     1.0  22.1166       2.6898   01-01-11 07:58       Friday
4   bbb     2.0  22.1162       2.6951   01-01-11 07:59       Friday
5   ccc     1.0  22.1166       2.6898   01-01-11 07:58       Friday
6   ccc     2.0  22.1162       2.6951   01-01-11 07:59       Friday
Run Code Online (Sandbox Code Playgroud)

我想计算Haudorff距离

import pandas as pd
import numpy as np

from …
Run Code Online (Sandbox Code Playgroud)

python numpy series pandas

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