Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Modify a particular row/column of a NumPy array

How do I modify particular a row or column of a NumPy array?

For example I have a NumPy array as follows:

P = array([[1, 2, 3],
           [4, 5, 6]])

How do I change the elements of first row, [1, 2, 3], to [7, 8, 9] so that the P will become:

P = array([[7, 8, 9],
           [4, 5, 6]])

Similarly, how do I change second column values, [2, 5], to [7, 8]?

P = array([[1, 7, 3],
           [4, 8, 6]])
like image 505
learner Avatar asked Nov 17 '14 15:11

learner


People also ask

How do you replace a row in an array?

To replace a row in an array we will use the slicing and * operator method. It will help the user for replacing rows elements. Firstly we will import the numpy library and then create a numpy array by using the np. array() function.

How do you change the rows and columns of a matrix in Python?

To transpose NumPy array ndarray (swap rows and columns), use the T attribute ( . T ), the ndarray method transpose() and the numpy. transpose() function.


3 Answers

Rows and columns of NumPy arrays can be selected or modified using the square-bracket indexing notation in Python.

To select a row in a 2D array, use P[i]. For example, P[0] will return the first row of P.

To select a column, use P[:, i]. The : essentially means "select all rows". For example, P[:, 1] will select all rows from the second column of P.

If you want to change the values of a row or column of an array, you can assign it to a new list (or array) of values of the same length.

To change the values in the first row, write:

>>> P[0] = [7, 8, 9]
>>> P
array([[7, 8, 9],
       [4, 5, 6]])

To change the values in the second column, write:

>>> P[:, 1] = [7, 8]
>>> P
array([[1, 7, 3],
       [4, 8, 6]])
like image 195
Alex Riley Avatar answered Oct 02 '22 12:10

Alex Riley


In a similar way if you want to select only two last columns for example but all rows you can use:

print P[:,1:3]
like image 45
Armin Alibasic Avatar answered Oct 02 '22 11:10

Armin Alibasic


If you have lots of elements in a column:

import numpy as np
np_mat = np.array([[1, 2, 2],
                   [3, 4, 5],
                   [5, 6, 5]])
np_mat[:,2] = np_mat[:,2] * 3
print(np_mat)

It is making a multiplied by 3 change in third column:

    [[ 1  2  6]
     [ 3  4 15]
     [ 5  6 15]]
like image 23
Amirreza SV Avatar answered Oct 02 '22 10:10

Amirreza SV