您的a
,b
,c
是列表;您必須使用np.array([1,2,3])
才能獲得數組,並且它將顯示爲[1 2 3]
(不含逗號)。
只需在創建從這些名單的新列表生成列表
In [565]: d=[a,b,c]
In [566]: d
Out[566]:
[[1, 2, 3, 4, 5],
[3, 2, 2, 2, 8],
['test1', 'test2', 'test3', 'test4', 'test5']]
,並簡單地串接列表的列表產生一個較長的
In [567]: a+b+c
Out[567]: [1, 2, 3, 4, 5, 3, 2, 2, 2, 8, 'test1', 'test2', 'test3', 'test4', 'test5']
numpy
陣列具有同時包含數字和字符串的問題。你必須創建一個「結構化數組」。
到這些組合成一個陣列的最簡單的方法是用一個fromarrays
效用函數:
In [561]: x=np.rec.fromarrays(([1,2,3],[3,2,2],['test1','test2','test3']))
In [562]: x['f0']
Out[562]: array([1, 2, 3])
In [563]: x['f2']
Out[563]:
array(['test1', 'test2', 'test3'],
dtype='<U5')
In [568]: x
Out[568]:
rec.array([(1, 3, 'test1'), (2, 2, 'test2'), (3, 2, 'test3')],
dtype=[('f0', '<i4'), ('f1', '<i4'), ('f2', '<U5')])
或與顯示器的一個小的編輯:
In [569]: print(x)
[(1, 3, 'test1')
(2, 2, 'test2')
(3, 2, 'test3')]
這不是一個二維陣列;它是1d(這裏是3個元素),有3個字段。
也許格式化這個數組中,看起來像你的天賦是有csv
作家的方式最簡單的方法:
In [570]: np.savetxt('x.txt',x,fmt='%d %d %s;')
In [571]: cat x.txt # shell command to display the file
1 3 test1;
2 2 test2;
3 2 test3;
您是否有興趣在一個特定的字符串顯示,或特定的數據結構(和行爲)?有一個真正的區別。一個';'是顯示的一部分,而不是數據結構。 – hpaulj
只要我可以隨時訪問數值,我就可以使用任何顯示。謝謝你或者指點分號。 –