微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查numpy.array是否存在? numpy数组的真值测试值吗?

如何解决如何检查numpy.array是否存在? numpy数组的真值测试值吗?

在开发使用numpy.array的类时,我想在一个阶段构造此数组,然后再检查它是否存在以便操纵它,或者在以后的阶段构造它(伪代码)下面)。我如何检查该数组是否存在?

对于任何基本对象,我使用:if my_object: # do something,它使用truth value testing,但是对于numpytruth value testing检查是否存在数组的任何或所有元素,因此if my_array: # do something显示错误The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

目前,唯一可行的方法调用isinstance(my_array,numpy.ndarray),但我认为这并不方便(特别是因为某些sklearn之类的库可以将numpy数组转换为{{1} }对象)。

用于说明我想做什么的伪代码

scipy.sparse

目前,我发现检查 def compute_my_array(self,...): # long job here return my_array def new_computation(self,my_array = None,...): if not my_array: # if my_array does not exist,compute it ... my_array = compute_my_array(self,...) do_something_else_with_my_array(my_array) # ... otherwise use it 是否存在的唯一方法是使用

my_array

还有其他(也许更好)的方法来进行检查吗?

解决方法

只需更改默认值即可返回一个空数组,然后检查数组中是否有任何东西

def new_computation(self,my_array = np.zeros((1,)),...):
   if not my_array.any(): # if my_array has no nonzero data,compute it ...
      my_array = compute_my_array(self,...)
   do_something_else_with_my_array(my_array) # ... otherwise use it

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。