我想知道我可以改进我的python代码,使其写得更短。我只使用标准库和numpy库。下面是代码。
import numpy as np
x=1
y=2
np.array([(a,b,c) for a in [x,y] for b in [x,y] for c in [x,y]])
正如你所看到的,这个程序产生了所有三个元素的组合,在这个程序中有一个类似的部分,如 for a in [x, y]
并且可以写得更短吗?
[编辑]
我想只使用标准库和numpy库。
输入应该是任何值,比如x=3,y=8。
from itertools import product
# ...
np.array(list(product((x, y), repeat=3)))
根据类似问题 Junkrat 建议,我想出了这个主意。但这并不简单)。
import numpy as np
x=1
y=2
a = np.array(np.meshgrid([x, y], [x, y], [x, y]))
a = np.rollaxis(a, 0, 4)
a = a.reshape((2*2*2, 3))