【问题标题】:Check if numpy's array_like is an empty array检查 numpy 的 array_like 是否为空数组
【发布时间】:2023-01-07 22:12:36
【问题描述】:

假设我们有一个 a 是一个 array_like 并且我们想检查它是否为空。实现此目的的两种可能方法是:

if not a:
   pass

if numpy.array(a).size == 0:
   pass

如果a=None,第一个解决方案也会评估为True。但是我只想检查一个空的array_like

第二种解决方案似乎足够好。我只是想知道是否有一个 numpy 内置函数或者更好的解决方案来检查大小?

【问题讨论】:

  • 您绝对不应该使用表达式not a。如果 a 实际上是一个大小为 0 的 numpy 数组,那么在最新版本的 numpy 中,该表达式将生成弃用警告:DeprecationWarning:空数组的真值不明确。返回 False,但将来会导致错误。使用 array.size > 0 检查数组是否为空。该消息表明检查 size 属性是推荐的方法。
  • 另请注意,如果 a 是一个列表,例如 a = [[], [], []],则 not a 将为 False(因为 len(a) 为 3),但 np.array(a).size 为 0(因为创建的数组具有形状 (3, 0)).

标签: python arrays numpy


【解决方案1】:

如果你想检查大小是否为零,你可以使用numpy.size函数来获得更简洁的代码

import numpy
a = []
b = [1,2]
c = [[1,2],[3,4]]
print(numpy.size(a) == 0)  # True
print(numpy.size(b) == 0)  # False
print(numpy.size(c) == 0)  # False

【讨论】:

    猜你喜欢
    • 2012-07-02
    • 2017-09-13
    • 2011-11-04
    • 2022-01-25
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多