![](/img/trans.png)
[英]Why are 3D numpy arrays printed the way they are (How are they ordered)?
[英]why are empty numpy arrays not printed
如果我初始化一個python列表
x = [[],[],[]]
print(x)
然后它返回
[[], [], []]
但如果我用一個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
類的.shape
。
要從numpy數組返回嵌套的空列表,您可以執行以下操作:
x.tolist()
[[], [], []]
但是,即使只打印[]
,形狀也是正確的:
x.shape
(3, 0)
您可以訪問列表中的任何元素:
x[0]
array([], dtype=float64)
最簡單的解決方案是將其轉換為帶有tolist
的列表
x = np.array([np.array([]),np.array([]),np.array([])])
print(x)
[]
print(x.tolist())
[[], [], []]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.