首页 > 解决方案 > 比较两个 numpy 数组中的元素会产生一个内存地址

问题描述

我正在比较两个 numpy 数组中的各个元素。数组元素是整数。我正在使用“equal_arrays”函数进行比较,但结果是给了我结果对象的内存地址:

这是代码:

    act = actual_direction
    pre = predicted_direction
    np.sum(act == pre)
    comparison = act == pre
    equal_arrays = comparison.all
    print(f'equal_arrays : {equal_arrays}\n')

结果:

   equal_arrays : <built-in method all of numpy.ndarray object at 0x00000122CA6CA3F0>

我是否必须访问内存地址才能获得结果,还是有更优雅的方式来获得答案?

提前致谢。

标签: python-3.xnumpy

解决方案


根据我的理解,您需要一种方法来获取具有 True 或 False 值的数组,对于来自两个矩阵的每个对应元素,假设它们具有相同的形状?(我想做的是对数组的每个单独元素进行比较。)

如果是这样,您可以尝试这样做:

a = np.array([[1,2,3], [4,5,6], [7,8,9]])
b = np.array([[3,2,1], [6,5,4], [9,8,7]])
print(a == b)

输出:

[[False  True False]
 [False  True False]
 [False  True False]]

推荐阅读