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]])