将新列添加到 Numpy 数组作为行的函数

And*_*rex 4 python numpy

我有一个 2D Numpy 数组,我想对每一行应用一个函数,并用结果形成一个新列(新的第一列)。例如,让

M = np.array([[1,0,1], [0,0,1]])
Run Code Online (Sandbox Code Playgroud)

我想sum在每一行上应用该函数并得到

array([[2,1,0,1], [1,0,0,1]])
Run Code Online (Sandbox Code Playgroud)

所以第一列是[2,1]第一行和第二行的总和。

Mad*_*ist 5

当数组具有相似的维数时,通常可以将它们相互追加np.concatenate。您可以sum使用参数保证无论轴如何,都将保留维度keepdims

np.concatenate((M.sum(axis=1, keepdims=True), M), axis=1)
Run Code Online (Sandbox Code Playgroud)

这相当于

np.concatenate((M.sum(1)[:, None], M), axis=1)
Run Code Online (Sandbox Code Playgroud)