我正在创建这个数组:
A=itertools.combinations(range(6),2)
Run Code Online (Sandbox Code Playgroud)
我必须用 numpy 操作这个数组,比如:
A.reshape(..
Run Code Online (Sandbox Code Playgroud)
如果维度是 A 高,则命令list(A)太慢。
更新1:我已经尝试过hpaulj的解决方案,在这种特定情况下会慢一点,知道吗?
start=time.clock()
A=it.combinations(range(495),3)
A=np.array(list(A))
print A
stop=time.clock()
print stop-start
start=time.clock()
A=np.fromiter(it.chain(*it.combinations(range(495),3)),dtype=int).reshape (-1,3)
print A
stop=time.clock()
print stop-start
Run Code Online (Sandbox Code Playgroud)
结果:
[[ 0 1 2]
[ 0 1 3]
[ 0 1 4]
...,
[491 492 494]
[491 493 494]
[492 493 494]]
10.323822
[[ 0 1 2]
[ 0 1 3]
[ 0 1 4]
...,
[491 492 494]
[491 493 494]
[492 493 494]]
12.289898
Run Code Online (Sandbox Code Playgroud)