如何在第二个numpy数组的开头添加仅包含“ 1”的列。
X = np.array([1, 2], [3, 4], [5, 6])
我想让X变成
[[1,1,2], [1,3,4],[1,5,6]]
答案 0 :(得分:2)
您可以使用np.insert
new_x = np.insert(x, 0, 1, axis=1)
您可以使用np.append
方法将数组添加到1
值列的右侧
x = np.array([[1, 2], [3, 4], [5, 6]])
ones = np.array([[1]] * len(x))
new_x = np.append(ones, x, axis=1)
两者都会给您预期的结果
[[1 1 2]
[1 3 4]
[1 5 6]]
答案 1 :(得分:1)
尝试一下:
>>> 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]])
答案 2 :(得分:0)
由于无论如何都会创建一个新数组,因此有时候从一开始就更容易做到。由于您希望一列的开头为1,因此可以使用内置函数以及输入数组的现有结构和dtype。
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]])
答案 3 :(得分:0)
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]])
请注意,第二个参数是要在其之前插入的索引。轴= 1表示要插入为一列而不会展平数组。
供参考: numpy.insert()