将"nan"添加到 numpy 数组 20 次而不循环



这是我的代码:

import numpy as np
n = np.array([1.1,2.3,3.4])
for x in range(20):
    n = np.append(n, [np.nan])

如何在没有循环的情况下将nan添加到我的numpy数组 20 次,仅使用 numpy 的工具?

谢谢

n = np.append(n, np.repeat(np.nan, 20))

[编辑]好吧,似乎使用np.repeat比使用np.zeros(20) + np.nan慢,就像E先生的回答一样:

In [1]: timeit np.zeros(10000) + np.nan
100000 loops, best of 3: 16.1 µs per loop
In [2]: timeit np.repeat(np.nan, 10000)
10000 loops, best of 3: 70.8 µs per loop

np.append更快:

In [3]: timeit np.append(n, n)
100000 loops, best of 3: 5.56 µs per loop
In [4]: timeit np.hstack((n, n))
100000 loops, best of 3: 7.87 µs per loop

因此,您可以结合使用这两种方法:

np.append(n, np.zeros(20) + np.nan)

这给出了:

In [42]: timeit np.hstack((n, np.zeros(20) + np.nan))
100000 loops, best of 3: 13.2 µs per loop
In [43]: timeit np.append(n, np.repeat(np.nan, 20))
100000 loops, best of 3: 15.4 µs per loop
In [44]: timeit np.append(n, np.zeros(20) + np.nan)
100000 loops, best of 3: 10.5 µs per loop
n = np.hstack((n, np.zeros(20) + np.nan))

最新更新