2016-03-21 122 views
6

如果我初始化一個Python列表爲什麼沒有印刷

x = [[],[],[]] 
print(x) 

空numpy的陣列,然後返回

[[], [], []] 

,但如果我做同樣的一個numpy的陣列

x = np.array([np.array([]),np.array([]),np.array([])]) 
print(x) 

那麼它只返回

[] 

如何才能讓它返回一個嵌套的空列表,就像它爲普通的python列表一樣?

回答

8

它實際上確實返回一個嵌套的空列表。例如,嘗試

x = np.array([np.array([]),np.array([]),np.array([])]) 
>>> array([], shape=(3, 0), dtype=float64) 

>>> print x.shape 
(3, 0) 

不要讓print x輸出欺騙你。這些類型的輸出僅僅反映了__str____repr__的實現者的(審美)選擇。要真正看到確切的維度,您需要使用諸如.shape之類的內容。

3

要從numpy的陣列返回一個嵌套的空列表,你可以這樣做:

x.tolist() 
[[], [], []] 

然而,即使它只[]打印,形狀是正確的:

x.shape 
(3, 0) 

,你可以訪問像列表中的任何元素:

x[0] 
array([], dtype=float64) 
+0

'tolist'在這裏是一個聰明的想法。 –

2

最簡單的解決方案是將它轉換爲li ST與tolist

x = np.array([np.array([]),np.array([]),np.array([])]) 
print(x) 
[] 

print(x.tolist()) 
[[], [], []] 
+0

'tolist'在這裏是一個聰明的想法。 –

相關問題