最佳方式(简写)将列和行添加到 numpy 数组

best way ( short hand) adding column and row to numpy array

在 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 中那样更高效(更像数组)的语法?

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 语法有什么特别之处可以提高效率或 'arrayish'?

你可以这样shorthand:

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]