【问题标题】:How to broadcast a row to a column in Python NumPy?如何在 Python NumPy 中将一行广播到一列?
【发布时间】:2017-12-20 22:15:58
【问题描述】:

我有一个行向量 R 和一个列向量 C。我想添加它们以创建一个数组 A,其高度等于 R 的大小,宽度等于 C 的大小,如下所示:A[i,j] = R [i] + C[j]

最有效的方法是什么?

【问题讨论】:

    标签: numpy array-broadcasting


    【解决方案1】:
    R + C[:, numpy.newaxis]
    

    对我有用。

    例如

    import numpy as np
    r = np.ones(5)
    c = np.ones(4) * 2
    r + c[:, np.newaxis]
    

    给了

    array([[ 3.,  3.,  3.,  3.,  3.],
           [ 3.,  3.,  3.,  3.,  3.],
           [ 3.,  3.,  3.,  3.,  3.],
           [ 3.,  3.,  3.,  3.,  3.]])
    

    【讨论】:

    • 也许在您的示例值 r = np.arange(5)c = np.arange(4) * 10 会更好地说明我们得到了所需的输出。 :)
    • 这很有趣。
    • 谢谢,这行得通。您对我发布的相关问题有解决方案吗? stackoverflow.com/questions/47916950/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多