我想生成一個a充滿隨機整數的 ndarray ,這些整數是根據另一個陣列從不同范圍采樣的span。例如:
import numpy as np
span = [5,6,7,8,9]
def get_a(span, count):
a = np.stack([np.random.choice(i, count) for i in span], axis=0)
return a
get_a(span,2)
有什么快速的方法get_a嗎?
uj5u.com熱心網友回復:
是的。你的:
import timeit
import numpy as np
span = np.arange(1,100)
def get_a(span, count):
a = np.stack([np.random.choice(i, count) for i in span], axis=0)
return a
%timeit get_a(span,2)
2.32 ms ± 254 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)
對于較大的陣列,我的解決方案要快 100 倍:
def get_b(span, count):
b = (np.random.rand(len(span), count)*span[:,None]).astype(int)
return b
%timeit get_b(span,2)
6.91 μs ± 267 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/388171.html
