Python 如何向矩阵中添加元素?
我看到许多关于同一问题的帖子,但是使用了Python 如何向矩阵中添加元素?,python,numpy,matrix,Python,Numpy,Matrix,我看到许多关于同一问题的帖子,但是使用了numpy.array,而这里我说的是numpy.matrix。如何将元素添加到矩阵中 例如: my_matrix = [[1 2 3 4 5]] 我怎样才能做到: my_matrix = [[1 2 3 4 5 6]]? 由于矩阵在numpy中非常受约束(如果避免它们,可能会更好),因此与常规numpy数组相比,它们非常挑剔。您可以使用一个稍微冗长的命令 np.concatenate((my_matrix,[[6]]),1) 或者使用horzcat
numpy.array
,而这里我说的是numpy.matrix
。如何将元素添加到矩阵中
例如:
my_matrix = [[1 2 3 4 5]]
我怎样才能做到:
my_matrix = [[1 2 3 4 5 6]]?
由于矩阵在numpy中非常受约束(如果避免它们,可能会更好),因此与常规numpy数组相比,它们非常挑剔。您可以使用一个稍微冗长的命令
np.concatenate((my_matrix,[[6]]),1)
或者使用horzcat
np.c_[my_matrix,[[6]]]
这就是我所做的
>>>n = np.matrix('1,2,3,4,5')
>>> n
matrix([[1, 2, 3, 4, 5]])
>>>np.insert(n,5,6)
matrix([[1, 2, 3, 4, 5, 6]])
对于多维数组,您必须提及水平索引和垂直索引,否则结果矩阵将被展平
>>> n = np.matrix('1,2;4,5')
>>> n
matrix([[1, 2],
[4, 5]])
>>> np.insert(n,1,6) #Here 1 indicates the index in the flattened matrix.
matrix([[1, 6, 2, 4, 5]])
在文件中,垂直索引被称为“轴”
指向文档的链接 可能重复我谈论的矩阵不是数组你没有用这句话创建
我的矩阵
,是吗:我的矩阵=[[1 2 3 4 5]]
?对于连接
(和朋友们),矩阵
施加了与2d数组相同的约束my_矩阵。A
也需要[[6]]
。hstack([np.arange(5),6])
在添加到1d数组时有效,但在添加到2d或矩阵时无效。但是np.c_[my_matrix,6]
可以工作-它可以将6
扩展到2d。@hpaulj最后一个是Bradcast。它可能对不同的形状不起作用。np.c
将6
传递到np.array(6,ndmin=2)
以使其匹配矩阵维度。这和广播不一样。在任何情况下,一个好的numpy程序员都应该知道如何自己调整尺寸,并使用普通的concatatenate
@hpaulj我的坏广播在python中有特殊的意义,我指的是2D。但在你以后的评论中,我几乎是对手。没有人需要被迫以特定的方式做某事。不管Numpy有多有用,它都非常笨重。它真的需要在某个时候进行一些大修。
>>> n = np.matrix('1,2;4,5')
>>> n
matrix([[1, 2],
[4, 5]])
>>> np.insert(n,1,6, axis=1)
matrix([[1, 6, 2],
[4, 6, 5]])
>>> np.insert(n,1,(67,78), axis=1)
matrix([[ 1, 67, 2],
[ 4, 78, 5]])