如何在第二个numpy数组的开头添加一个仅包含“1”的列。
X = np.array([1, 2], [3, 4], [5, 6])
我希望让X变成
[[1,1,2], [1,3,4],[1,5,6]]
X = np.array([1, 2], [3, 4], [5, 6])
我希望让X变成
[[1,1,2], [1,3,4],[1,5,6]]
试试这个:
>>> X = np.array([[1, 2], [3, 4], [5, 6]])
>>> X
array([[1, 2],
[3, 4],
[5, 6]])
>>> np.insert(X, 0, 1, axis=1)
array([[1, 1, 2],
[1, 3, 4],
[1, 5, 6]])
由于无论如何都会创建一个新的数组,所以从一开始就这样做有时更容易。由于您想在开头有一列1,因此可以使用内置函数和输入数组的现有结构和数据类型。
a = np.arange(6).reshape(3,2) # input array
z = np.ones((a.shape[0], 3), dtype=a.dtype) # use the row shape and your desired columns
z[:, 1:] = a # place the old array into the new array
z
array([[1, 0, 1],
[1, 2, 3],
[1, 4, 5]])
numpy.insert()会解决问题。
X = np.array([[1, 2], [3, 4], [5, 6]])
np.insert(X,0,[1,2,3],axis=1)
输出将是:
array([[1, 1, 2],
[2, 3, 4],
[3, 5, 6]])