【问题标题】:Comparing two arrays throws a warning. Any workaround for this?比较两个数组会引发警告。有什么解决方法吗?
【发布时间】:2020-11-11 16:45:54
【问题描述】:

我有 2 个 np.array() 如下。当我使用“==”比较两者时,我得到一个输出,但有一个弃用警告。比较具有相同矩阵的 2 个数组时没有警告。

有什么解决方法可以得到相同的结果但没有警告?

非常感谢!

x = np.array([[0,1,2],[3,4,5]])
x

Out: array([[0, 1, 2],
       [3, 4, 5]])

y = np.array([[6,7],[8,9],[10,11]])
y

Out: array([[ 6,  7],
       [ 8,  9],
       [10, 11]])

x == y

Out: False

**C:\ProgramData\Anaconda3\lib\site-packages\ipykernel_launcher.py:1: DeprecationWarning: elementwise comparison failed; this will raise an error in the future.
  """Entry point for launching an IPython kernel.**

截图:

【问题讨论】:

  • 截图在哪里?

标签: python python-3.x pandas numpy data-science


【解决方案1】:

x 和 y 有不同的形状。

您可以按元素方式比较两个具有相同形状的 Numpy 数组。

这个answer 可能有帮助。

【讨论】:

    【解决方案2】:

    看看这个link:

    np.array_equal(x,y)  # test if same shape, same elements values
    
    np.array_equiv(x,y)  # test if broadcastable shape, same elements values
    

    这个link 也很有用。

    【讨论】:

      【解决方案3】:

      这个错误告诉你你正在执行的比较没有意义,因为两个数组有不同的形状,因此它不能执行元素比较:

      x==y
      

      DeprecationWarning:元素比较失败;这将在未来引发错误。 x==y

      正确的做法是使用np.array_equal,它会检查形状和元素是否相等:

      np.array_equal(x,y)
      # False
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-04
        • 2018-07-07
        • 1970-01-01
        • 2013-10-27
        • 1970-01-01
        • 2014-05-15
        • 2019-07-03
        • 1970-01-01
        相关资源
        最近更新 更多