最好的方法(简针)将列和行添加到numpy数组

时间:2015-01-31 19:57:19

标签: python numpy

在numpy中连接列或行的最佳方法是什么?

我知道numpy.append和numpy.vstack。

例如,我有3x5阵列和3x5阵列

a = numpy.zeros((3,5))
b = numpy.ones((3,5))

如果我想连接a和b来制作3 x 10数组,我会做

a = numpy.hstack((a,b))

如果我想连接a和b来制作6 x 5数组,我会做

a = numpy.vstack((a,b))

是否有更高效(更多阵列)的语法,如R?

2 个答案:

答案 0 :(得分:1)

hstackvstack最终都会调用concatenate,这是一个已编译的函数。所以它尽可能高效。

In [76]: np.concatenate([a,b],1).shape
Out[76]: (3, 10)
In [77]: np.concatenate([a,b],0).shape
Out[77]: (6, 5)
In [79]: np.array([a,b]).shape
Out[79]: (2, 3, 5)

np.array是基本构造函数,通常会添加维度。所有这些的输入是一个列表,一个数组,列表或数字列表。

R语法有什么特别之处,可以提高效率或者排列'

答案 1 :(得分:1)

你可以像这样做速记:

import numpy as np

a = numpy.zeros((3,5))
b = numpy.ones((3,5))

# hstack equivalent
c = np.c_[a, b]

# vstack equivalent
d = np.r_[a, b]