如果我初始化一個Python列表爲什麼沒有印刷
x = [[],[],[]]
print(x)
空numpy的陣列,然後返回
[[], [], []]
,但如果我做同樣的一個numpy的陣列
x = np.array([np.array([]),np.array([]),np.array([])])
print(x)
那麼它只返回
[]
如何才能讓它返回一個嵌套的空列表,就像它爲普通的python列表一樣?
如果我初始化一個Python列表爲什麼沒有印刷
x = [[],[],[]]
print(x)
空numpy的陣列,然後返回
[[], [], []]
,但如果我做同樣的一個numpy的陣列
x = np.array([np.array([]),np.array([]),np.array([])])
print(x)
那麼它只返回
[]
如何才能讓它返回一個嵌套的空列表,就像它爲普通的python列表一樣?
它實際上確實返回一個嵌套的空列表。例如,嘗試
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
之類的內容。
要從numpy的陣列返回一個嵌套的空列表,你可以這樣做:
x.tolist()
[[], [], []]
然而,即使它只[]
打印,形狀是正確的:
x.shape
(3, 0)
,你可以訪問像列表中的任何元素:
x[0]
array([], dtype=float64)
最簡單的解決方案是將它轉換爲li ST與tolist
x = np.array([np.array([]),np.array([]),np.array([])])
print(x)
[]
print(x.tolist())
[[], [], []]
'tolist'在這裏是一個聰明的想法。 –
'tolist'在這裏是一個聰明的想法。 –