NumPy append vs concatenate

7 浏览
0 Comments

NumPy append vs concatenate

NumPy的`append`和`concatenate`有什么区别?我的观察是`concatenate`稍微快一点,而`append`如果未指定轴,则会将数组展平。

观察结果如下:

数组a:

[[1 2]

[3 4]

[5 6]

[5 6]

[1 2]

[3 4]

[5 6]

[5 6]

[1 2]

[3 4]

[5 6]

[5 6]

[5 6]]

数组b:

[[1 2]

[3 4]

[5 6]

[5 6]

[1 2]

[3 4]

[5 6]

[5 6]

[5 6]]

使用`np.concatenate((a, b))`的运行时间为2.05微秒。

使用`np.append(a, b, axis=0)`的运行时间为2.41微秒。

`np.concatenate((a, b))`的输出结果为:

[[1, 2],

[3, 4],

[5, 6],

[5, 6],

[1, 2],

[3, 4],

[5, 6],

[5, 6],

[1, 2],

[3, 4],

[5, 6],

[5, 6],

[5, 6],

[1, 2],

[3, 4],

[5, 6],

[5, 6],

[1, 2],

[3, 4],

[5, 6],

[5, 6],

[5, 6]]

`np.append(a, b, axis=0)`的输出结果为:

[[1, 2],

[3, 4],

[5, 6],

[5, 6],

[1, 2],

[3, 4],

[5, 6],

[5, 6],

[1, 2],

[3, 4],

[5, 6],

[5, 6],

[5, 6],

[1, 2],

[3, 4],

[5, 6],

[5, 6],

[1, 2],

[3, 4],

[5, 6],

[5, 6],

[5, 6]]

`np.append(a, b)`的输出结果为:

[1, 2, 3, 4, 5, 6, 5, 6, 1, 2, 3, 4, 5, 6, 5, 6, 1, 2, 3, 4, 5, 6, 5, 6, 5, 6, 1, 2, 3, 4, 5, 6, 5, 6, 1, 2, 3, 4, 5, 6, 5, 6, 5, 6]

0