在python中使用np.vstack向numpy矩阵问题添加行(标题)

在python中使用np.vstack向numpy矩阵问题添加行(标题),python,matrix,numpy,Python,Matrix,Numpy,我有这样一个numpy矩阵: >>> matrix [['M' 'G' 'H' 'H' 'H' 'H' 'H' 'H' 'S' 'H' 'M' 'A' 'A' 'A' 'M'] ['A' 'A' 'T' 'E' 'D' 'D' 'I' 'R' 'G' 'Q' 'L' 'Q' 'S' 'H' 'G']] length_seqs = matrix.shape[1] header = np.arange(length_seqs) matrix_with_header = np.

我有这样一个numpy矩阵:

>>> matrix
[['M' 'G' 'H' 'H' 'H' 'H' 'H' 'H' 'S' 'H' 'M' 'A' 'A' 'A' 'M']
 ['A' 'A' 'T' 'E' 'D' 'D' 'I' 'R' 'G' 'Q' 'L' 'Q' 'S' 'H' 'G']]
length_seqs = matrix.shape[1]
header = np.arange(length_seqs)

matrix_with_header = np.vstack((header,matrix))
我想在这个矩阵中添加一个新行,我的操作如下:

>>> matrix
[['M' 'G' 'H' 'H' 'H' 'H' 'H' 'H' 'S' 'H' 'M' 'A' 'A' 'A' 'M']
 ['A' 'A' 'T' 'E' 'D' 'D' 'I' 'R' 'G' 'Q' 'L' 'Q' 'S' 'H' 'G']]
length_seqs = matrix.shape[1]
header = np.arange(length_seqs)

matrix_with_header = np.vstack((header,matrix))
但当我打印这个新矩阵时,它显示如下:

>>> print matrix_with_header
[['0' '1' '2' '3' '4' '5' '6' '7' '8' '9' '1' '1' '1' '1' '1']
 ['M' 'G' 'H' 'H' 'H' 'H' 'H' 'H' 'S' 'H' 'M' 'A' 'A' 'A' 'M']
 ['A' 'A' 'T' 'E' 'D' 'D' 'I' 'R' 'G' 'Q' 'L' 'Q' 'S' 'H' 'G']]

如您所见,当需要打印一个以上的数字时,它不会打印,并且只显示第一个数字。对此有何解释和解决办法??非常感谢您的帮助。

矩阵的
数据类型可能是
'S1'
,这意味着所有内容都是一个1字符长的字符串。将其更改为
'S2'
,以允许更长的字符串

例如:

In [1]: import numpy as np

In [2]: a = np.array(['hi','hello'])

In [3]: a.dtype
Out[3]: dtype('|S5')

In [4]: a = np.array(['hi','hello'], dtype='S2')

In [5]: a
Out[5]: 
array(['hi', 'he'], 
      dtype='|S2')

如果不将它们用作实际矩阵,是否确实要使用
矩阵
而不是
数组
?矩阵后面的代码是必需的。。。但你是对的。。如果我只需要打印矩阵,我可以使用数组