我正在寻找矢量化的方法:
for x in range(1,N+1):
mul3ou5 = "inf"*(x%3 == 0)+"luans"*(x%5==0)
print str(x)*(mul3ou5 =="")+mul3ou5
这个想法是使用 numpy 数组并通过对 numpy 数组进行一次操作来替换 for 循环numpy.array(range(100))
提前致谢
最佳答案
虽然@morningsun的答案很好,但另一个选择是这样的(使用 boolean indexing ):
import numpy as np
x = np.arange(1, N+1)
s = x.astype('S8')
s[x % 3 == 0] = 'inf'
s[x % 5 == 0] = 'luans'
s[x % 15 == 0] = 'influans'
我发现它更直观,因为它保留了显式模数 (%
) 运算。
关于python - 如何向量化这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33799879/