检查numpy数组中的所有元素是否与数字匹配

时间:2015-12-15 00:57:26

标签: python numpy

在我的python测试脚本中,我想断言numpy数组的所有元素是非常接近1.0还是等于0.0。该数组如下所示:

$text = $html->getElementsbyTagName('article')->item(0)->textContent;

我想过使用numpy.allclose或numpy.array_equal,但这里没有任何意义。理想情况下,该功能应该能够用于测试场景

2 个答案:

答案 0 :(得分:3)

您可以使用布尔索引获取0个元素并将其掩盖掉。完成后,<a href="https://www.google.com" target="_blank" class="titleClass">Illustrating tips</a> 正是您想要的:

np.allclose

答案 1 :(得分:0)

我能想到的最简单的事情就是遍历数组的每个元素并测试它是否接近于1或等于零:

import numpy as np

arr = np.array([[0.9999999991268851, 1.0000000223517418, 0.999999986961484],
                [1.0000000186264515, 0.9999999925494194, 0.0]])

def is_one_or_zero(arr):
  for elem in np.nditer(arr):
    if not (elem == 0 or np.isclose(1.0, elem)):
      return False
  return True

print is_one_or_zero(arr) # Should be True
arr[0, 0] = 1.01
print is_one_or_zero(arr) # Should be False