【问题标题】:best way ( short hand) adding column and row to numpy array最好的方法(简写)将列和行添加到 numpy 数组
【发布时间】:2015-02-02 03:58:49
【问题描述】:

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

【问题讨论】:

  • 你需要给我们一个更好的例子,比如几个输入数组,以及想要的输出。

标签: python numpy


【解决方案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]

【讨论】:

    【解决方案2】:

    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 语法有什么特别之处?

    【讨论】:

    • 我记错了。 R 使用 rbind 和 cbind。谢谢!!
    猜你喜欢
    • 2010-12-26
    • 2014-07-16
    • 1970-01-01
    • 2012-06-21
    • 2011-04-22
    • 2014-03-05
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    相关资源
    最近更新 更多