最佳方式(简写)将列和行添加到 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 中那样更高效(更像数组)的语法?
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
语法有什么特别之处可以提高效率或 '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]
在 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 中那样更高效(更像数组)的语法?
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
语法有什么特别之处可以提高效率或 '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]