簡體   English   中英

lil_matrix對象的數字數組-是否為空?

[英]Numpy array of lil_matrix objects - is empty?

我想問一下是否有一種干凈的方法來檢查包含其他數組的numpy對象數組中的空元素。 在我以前這樣做之前,它基本上檢查內部對象的大小,如果x是一個numpy數組,則可以正常工作:

[True if np.size(x) == 0 else False for x in metrics]

但是,如果x是大小為0稀疏lil_matrix數組,則此方法不起作用。

有沒有什么好的方法可以檢查metrics[x] == [] 因此,如果尚未將其設置為任何值?

編輯:舉個例子

import numpy as np
from scipy.sparse import lil_matrix
metrics = np.empty(5, dtype=object)
metrics[2] = np.zeros((3,3))
metrics[3] = lil_matrix(np.zeros((3,3),dtype=bool))

我想知道0,1,4為空,而2,3不是

如果運行上面的命令,我將得到:

In [6]: [True if np.size(x) == 0 else False for x in metrics]
Out[6]: [False, False, False, True, False]

這不是我想要的。 我想要[True, True, False, False, True]

我不知道它是否可以與lil_matrix一起使用,但是您可以對numpy數組使用諸如any()函數之類的方法:

a = np.array([])
b = np.array([1,2])
c = np.array([b,b,a,b])
d = [not m.any() for m in b]

這將為您提供對/錯的列表。 那么您需要這樣的想法:

all(d)

其實我找到了解決方案。 顯然,空對象數組將元素設置為“無”。 那我就可以

In [11]: [True if x is None else False for x in metrics]
Out[11]: [True, True, False, False, True]

得到我的結果

暫無
暫無

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

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