[英]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.