2

我有一个像这样的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))

但是当我打印这个新矩阵时,它显示如下:

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

如您所见,当需要打印多个数字时,它不会并且只显示第一个数字。对此有任何解释和解决方案吗?任何帮助将不胜感激,谢谢。

4

1 回答 1

2

您的dtype矩阵的 可能'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')
于 2013-03-07T23:55:38.867 回答