Ano*_*ous 5 python arrays numpy
如果我试试
x = np.append(x, (2,3))
元组(2,3)没有得到追加到数组的末尾,而2并3获得单独附加,即使我最初宣布x的
x = np.array([], dtype = tuple)
要么
x = np.array([], dtype = (int,2))
这样做的正确方法是什么?
我同意@ user2357112评论:
附加到NumPy阵列的速度比附加到普通列表要慢.这是一项根本不适合的操作
这是一个小基准:
# measure execution time
import timeit
import numpy as np
def f1(num_iterations):
x = np.dtype((np.int32, (2, 1)))
for i in range(num_iterations):
x = np.append(x, (i, i))
def f2(num_iterations):
x = np.array([(0, 0)])
for i in range(num_iterations):
x = np.vstack((x, (i, i)))
def f3(num_iterations):
x = []
for i in range(num_iterations):
x.append((i, i))
x = np.array(x)
N = 50000
print timeit.timeit('f1(N)', setup='from __main__ import f1, N', number=1)
print timeit.timeit('f2(N)', setup='from __main__ import f2, N', number=1)
print timeit.timeit('f3(N)', setup='from __main__ import f3, N', number=1)
Run Code Online (Sandbox Code Playgroud)
我不会同时使用np.append和vstack,我只是正确地创建我的python数组然后用它来构造np.array
编辑
这是我笔记本电脑上的基准输出:
[14.3秒完成]