如何向numpy数组添加行?

我有一个数组A

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

如果X中每一行的第一个元素满足特定条件,我希望从另一个数组X向该数组添加行。

Numpy数组不像列表那样有一个方法“append”,或者看起来是这样。

如果A和X是列表,我只会做:

for i in X:
    if i[0] < 3:
        A.append(i)

有没有一种numpythonic方法来做同样的事情?

谢谢, 年代;-)


当前回答

你可以这样做:

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

其他回答

您可以使用numpy.append()将一行附加到numpty数组中,并稍后将其重塑为矩阵。

import numpy as np
a = np.array([1,2])
a = np.append(a, [3,4])
print a
# [1,2,3,4]
# in your example
A = [1,2]
for row in X:
    A = np.append(A, row)
import numpy as np
array_ = np.array([[1,2,3]])
add_row = np.array([[4,5,6]])

array_ = np.concatenate((array_, add_row), axis=0)

我使用numpy。插入(arr, i, the_object_to_be_added, axis),以便在第i行(轴=0)或第i列(轴=1)插入object_to_be_added

import numpy as np

a = np.array([[1, 2, 3], [5, 4, 6]])
# array([[1, 2, 3],
#        [5, 4, 6]])

np.insert(a, 1, [55, 66], axis=1)
# array([[ 1, 55,  2,  3],
#        [ 5, 66,  4,  6]])

np.insert(a, 2, [50, 60, 70], axis=0)
# array([[ 1,  2,  3],
#        [ 5,  4,  6],
#        [50, 60, 70]])

太旧的讨论了,但我希望它能帮助到一些人。

你可以这样做:

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

你还可以这样做:

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