簡體   English   中英

空矩陣的Python Numpy 2D數組行數仍為1

[英]Python Numpy 2D Array Number of Rows For Empty Matrix is Still 1

假設我有一個矩陣A,B和C。當我將矩陣初始化為

A = np.array([[]])
B = np.array([[1,2,3]])
C = np.array([[1,2,3],[4,5,6]])

然后

B.shape[0]
C.shape[0]

分別給出1和2(如預期),但是

A.shape[0]

給出1,就像B.shape [0]一樣。

獲取給定矩陣的行數的最簡單方法是什么,但仍然要確保像A這樣的空矩陣的值為零。

在搜索堆棧溢出一段時間后,我找不到答案,因此我在下面發布了自己的答案,但是如果您能提出一個更簡潔,更一般的答案,我會接受您的答案。 謝謝!

A = np.array([[]])

那是一個1×0的數組。 您似乎想要一個0×3的數組。 這樣的數組幾乎完全沒有用,但是如果您真的想要一個數組,則可以創建一個數組:

A = np.zeros([0, 3])

然后,您將獲得A.shape[0] == 0

您可以通過測試size是否為0來限定shape[0]

In [121]: A.shape[0]*(A.size>0)
Out[121]: 0
In [122]: B.shape[0]*(B.size>0)
Out[122]: 1
In [123]: C.shape[0]*(C.size>0)
Out[123]: 2

或測試列數

In [125]: A.shape[0]*(A.shape[1]>0)
Out[125]: 0

A的獨特之處在於第二維的列數。

使用

A.size/(len(A[0]) or 1)
B.size/(len(B[0]) or 1)
C.size/(len(C[0]) or 1)

分別產生0、1和2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM