在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?
答案 0 :(得分:1)
hstack
和vstack
最终都会调用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]