我有一个函数,它把一的列向量加到矩阵上。在
def add_ones(x):
return np.hstack((np.ones((x.shape[0], 1)), x))
当x是一个矩阵时,它做得很好。例如:
^{pr2}$给予
[[1. 1. 2.]
[1. 3. 4.]]
[[1. 0. 0. 0. 0. 0.]
[1. 0. 0. 0. 0. 0.]
[1. 0. 0. 0. 0. 0.]
[1. 0. 0. 0. 0. 0.]
[1. 0. 0. 0. 0. 0.]]
但是当我传递一个向量时:
z = np.zeros(5)
add_ones(z)
它给出了以下错误:
ValueError: all the input arrays must have same number of dimensions
我想把它还回去
[1. 0. 0. 0. 0. 0.]
我该怎么办?在
必须向
z
添加另一个维度(使其成为二维5x1矩阵):你的函数创建了一个二维数组,对吧?在
如果}是1d时,那就错了。您的函数需要注意
x
也是二维的,那就没问题了,但是当{x
的形状,并在适当的时候创建一个1d数组。在比如:
^{pr2}$相关问题 更多 >
编程相关推荐