gpt4 book ai didi

python - NumPy 追加 vs Python 追加

转载 作者:太空狗 更新时间:2023-10-29 20:35:55 29 4
gpt4 key购买 nike

在 Python 中,我可以附加到一个空数组,例如:

>>> a = []
>>> a.append([1,2,3])
>>> a.append([1,2,3])
>>> a
[[1, 2, 3], [1, 2, 3]]

我如何在 NumPy 中做同样的事情?不幸的是,np.append 使数组变平(我需要在开头有一个空数组)。

最佳答案

OP 打算从空数组开始。所以,这是使用 NumPy 的一种方法

In [2]: a = np.empty((0,3), int)

In [3]: a
Out[3]: array([], shape=(0L, 3L), dtype=int32)

In [4]: a = np.append(a, [[1,2,3]], axis=0)

In [5]: a
Out[5]: array([[1, 2, 3]])

In [6]: a = np.append(a, [[1,2,3]], axis=0)

In [7]: a
Out[7]:
array([[1, 2, 3],
[1, 2, 3]])

但是,如果您要追加大量循环。先追加列表再转换为数组比追加 NumPy 数组更快。

In [8]: %%timeit
...: list_a = []
...: for _ in xrange(10000):
...: list_a.append([1, 2, 3])
...: list_a = np.asarray(list_a)
...:
100 loops, best of 3: 5.95 ms per loop

In [9]: %%timeit
....: arr_a = np.empty((0, 3), int)
....: for _ in xrange(10000):
....: arr_a = np.append(arr_a, np.array([[1,2,3]]), 0)
....:
10 loops, best of 3: 110 ms per loop

关于python - NumPy 追加 vs Python 追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29839350/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com