  # Numpy – add row to array

StackOverflow

How does one add rows to a numpy array?

I have an array A:

``````A = array([[0, 1, 2], [0, 2, 0]])
``````

I wish to add rows to this array from another array X if the first element of each row in X meets a specific condition.

Numpy arrays do not have a method "append" like that of lists, or so it seems.

If A and X were lists I would merely do:

``````for i in X:
if i < 3:
A.append(i)
``````

Is there a numpythonic way to do the equivalent?

Thanks, S ;-)

well u can do this :

``````  newrow = [1,2,3]
A = numpy.vstack([A, newrow])
``````

What is `X`? If it is a 2D-array, how can you then compare its row to a number: `i < 3`?

EDIT after OP"s comment:

``````A = array([[0, 1, 2], [0, 2, 0]])
X = array([[0, 1, 2], [1, 2, 0], [2, 1, 2], [3, 2, 0]])
``````

add to `A` all rows from `X` where the first element `< 3`:

``````import numpy as np
A = np.vstack((A, X[X[:,0] < 3]))

# returns:
array([[0, 1, 2],
[0, 2, 0],
[0, 1, 2],
[1, 2, 0],
[2, 1, 2]])
``````