In [171]: x = np.random.random(10**6)
In [172]: %time faster(x, 0)
Wall time: 386 ms
Out[172]: array([1, 1, 1, ..., 1, 1, 1], dtype=int64)
In [173]: %time faster(x, 1)
Wall time: 372 ms
Out[173]: array([1000000, 1000000, 1000000, ..., 1000000, 1000000, 1000000], dtype=int64)
In [174]: x = np.random.randint(0, 10, 10**6)
In [175]: %timeit faster(x, 3)
10 loops, best of 3: 83 ms per loop
这里有一种利用^{} 和
outer-subtraction
-用}计数-
^{pr2}$outer subtract builtin
和{样本运行-
或者使用^{} -
对于输入中的百万行,我们可能需要使用一个循环的-
这里有一个非广播的方法,它利用了这样一个事实:要知道有多少个数字在10的3/3范围内,可以从那些严格小于7的数字中减去<;=13。在
这通过了我的测试:
^{pr2}$即使在大尺寸的情况下也表现良好:
相关问题 更多 >
编程相关推荐