[英]How to speed up the performance of array masking from the results of numpy.searchsorted in python?
[英]How to speed up numpy array boolean masking in python?
我需要在 python 中加速以下布爾掩碼:
import numpy as np
# test dataset
n=1000000
mask = np.random.choice(a=[False, True], size=(n,), p=[0.8, 0.2])
arr = np.random.rand(n)
# the code I need to speed up:
res = arr[mask]
有什么想法可以讓它在python中更快嗎?
我寫了一個 numba 實現,它的性能與 numpy 幾乎相同。
import numba as nb
import numpy as np
@nb.njit(parallel=False, fastmath=True)
def array_masking_float(arr, mask, res):
j=0
for i in nb.prange(mask.shape[0]):
if mask[i] == True:
res[j] = arr[i]
j += 1
誰能想出更好的解決方案?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.