在python中使用np.vstack向numpy矩阵问题添加行(标题)
我有这样一个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.
>>> 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')
如果不将它们用作实际矩阵,是否确实要使用矩阵
而不是数组
?矩阵后面的代码是必需的。。。但你是对的。。如果我只需要打印矩阵,我可以使用数组