-1로 채워진 파이썬으로 3D 배열을 만들고 싶습니다. 파이썬에서 배열을 만드는 가장 빠른 방법
import numpy as np
l = 200
b = 100
h = 30
%timeit grid = [[[-1 for x in range(l)] for y in range(b)] for z in range(h)]
1 loops, best of 3: 458 ms per loop
%timeit grid = -1 * np.ones((l, b, h), dtype=np.int)
10 loops, best of 3: 35.5 ms per loop
%timeit grid = np.zeros((l, b, h), dtype=np.int) - 1
10 loops, best of 3: 31.7 ms per loop
%timeit grid = -1.0 * np.ones((l, b, h), dtype=np.float32)
10 loops, best of 3: 42.1 ms per loop
%%timeit
grid = np.empty((l,b,h))
grid.fill(-1.0)
100 loops, best of 3: 13.7 ms per loop
그래서 분명히, 마지막 하나는 가장 빠른 :
나는 이러한 방법을 시험했다. 아무도 더 빠른 방법이나 적어도 메모리를 적게 사용합니까? 왜냐하면 그것은 RaspberryPi에서 실행되기 때문입니다.
그런 배열을 만드는 가장 일반적인 방법은'grid = np.full ((l, b, h), -1)'입니다. 아니 그래도 빨리. –
아, 제 질문은 [this] (http://stackoverflow.com/questions/5891410/numpy-array-initialization-fill-with-identical-values)의 dup입니다. – Balzer82