2 回答

TA貢獻1865條經驗 獲得超7個贊
據我所知,這只是表達空數組的一種冗余方式。如果你有一排“空”,這對 python 來說似乎無關緊要。
假設我們有一個給定數組 a:
import numpy as np
a = np.zeros((0,100))
如果我們打印 a 我們得到的只是空數組本身:
print(a)
>>> []
此外,我們實際上可以看到,盡管如此,它仍保持其形狀”
np.shape(a)
>>> (0, 100)
但是,如果您嘗試按位置訪問給定元素,例如:
print(a[0])
或者
print(a[0][0])
你得到一個 IndexError :
IndexError: index 0 is out of bounds for axis 0 with size 0
因此,我相信空數組的數學含義,盡管您分配給它們的形狀是相同的。

TA貢獻1863條經驗 獲得超2個贊
好吧,在這種特殊情況下,這兩個陳述是等價的:
print(np.zeros(0))
>>>[]
print(np.zeros((0,100)))
>>>[]
這是因為空數組是空數組。你的直覺在那里是正確的。如果你輸入:
np.zeros(10)
或者
np.zeros((1,10))
你也會得到相同的數組,即[0,0,0,0,0,0,0,0,0,0]. 僅當您指的是實際更改數組形狀的數字時,形狀才重要。例如:
print(np.zeros((2,3)))
>>>[[0,0,0]
[0,0,0]]
但:
print(np.zeros((3,2)))
>>>[[0,0]
[0,0]
[0,0]]
沒有什么特別不透明的。你的常識在這里實際上適用。如果數組為空,則添加到其中的其他維度都不重要。
添加回答
舉報