我有一個非常簡單的問題! 我如何合併兩個numpy的陣列增加尺寸:合併兩個Numpy Array
假設我有以下陣列:
a=[1,2]
b=[3,4,5]
我需要這樣的結果:
c=[[1,2],[3,4,5]
然而
np.concatenate((a,b),axis=0)
不起作用!
謝謝!
我有一個非常簡單的問題! 我如何合併兩個numpy的陣列增加尺寸:合併兩個Numpy Array
假設我有以下陣列:
a=[1,2]
b=[3,4,5]
我需要這樣的結果:
c=[[1,2],[3,4,5]
然而
np.concatenate((a,b),axis=0)
不起作用!
謝謝!
您只需執行以下操作即可獲得您想要的結果。
c = [a,b]
或者
c = np.array([a,b])
結果:
[[1, 2], [3, 4, 5]]
您能否顯示'c'的'repr' - 查看類型和dtype? – hpaulj
把它們放在一起在一個列表:
In [269]: c = [a,b]
In [270]: c
Out[270]: [[1, 2], [3, 4, 5]]
使從一個數組不起作用v ERY很好:
In [271]: np.array(c)
Out[271]: array([list([1, 2]), list([3, 4, 5])], dtype=object)
但如果你的目標只是寫的名單文件,CSV風格,我們可以這樣做:
In [272]: for row in c:
...: line=''
...: for x in row:
...: line += '%5s'%x
...: print(line)
...:
1 2
3 4 5
對於文件剛剛替補爲print
文件寫入。
numpy
有一個不錯的savetxt
,但它需要一個很好的二維數組。那個衣衫襤褸的1d對象dtype數組不起作用。
itertools.zip_longest
也可用於'填充'c
的元素。但簡單地寫入文件是最簡單的。使用zip_longest
填充行,然後使用savetxt
來編寫csv。請注意,「空白」分隔「細胞」:
In [321]: rows =list(zip(*zip_longest(*c,fillvalue='')))
In [322]: rows
Out[322]: [(1, 2, ''), (3, 4, 5)]
In [323]: np.savetxt('foo.txt',rows, fmt='%5s',delimiter=',')
In [324]: cat foo.txt
1, 2,
3, 4, 5
與適當的襯墊,我可以重新加載CSV(可能需要填充值撥弄):
In [328]: np.genfromtxt('foo.txt',delimiter=',')
Out[328]:
array([[ 1., 2., nan],
[ 3., 4., 5.]])
你什麼錯誤? – Sam51
你爲什麼要這樣做?這個數組不會有很多'numpy.array'屬性。 – Akavall
不要錯誤。我的結果是[1,2,3,4,5] – Elham