Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add new column to Numpy Array as a function of the rows

Tags:

python

numpy

I have a 2D Numpy Array, and I want to apply a function to each of the rows and form a new column (the new first column) with the results. For example, let

M = np.array([[1,0,1], [0,0,1]])

and I want to apply the sum function on each row and get

array([[2,1,0,1], [1,0,0,1]])

So the first column is [2,1], the sum of the first row and the second row.

like image 565
Andrex Avatar asked Sep 07 '25 00:09

Andrex


1 Answers

You can generally append arrays to each other using np.concatenate when they have similar dimensionality. You can guarantee that sum will retain dimensionality regardless of axis using the keepdims argument:

np.concatenate((M.sum(axis=1, keepdims=True), M), axis=1)

This is equivalent to

np.concatenate((M.sum(1)[:, None], M), axis=1)
like image 59
Mad Physicist Avatar answered Sep 08 '25 12:09

Mad Physicist