numpy.array_equal 对于匹配 np 数组返回 False

问题描述 投票:0回答:1

我无法从 numpy.array_equal 获得正确的输出。恒等数组是使用 np.eye(size) 创建的,而我与之比较的

result_ab
数组是使用 np.array([]) 构建的。

我不断得到与预期相反的结果。我已经用整数和浮点数组进行了测试,当它应该返回 True 时却不断得到 False。

def identity_check(result_ab, rows):
    size = result_ab.shape[0]
    identity = np.eye(size)
    print(identity)
    
    if np.array_equal(result_ab, identity) == True:
        print('Inverse!')
    else:
        print('Not inverse.')

# Test case values
result_ab = np.array([[1, 0],
                      [0, 1]])
rows = 2

我已经使用 allclose 和 array_equiv 进行了测试,但我认为这些方法不是正确的方法(它们也往往会失败或给出误报)。我还打印了

result_ab
identity
数组的类型,并且它返回了
<class 'numpy.ndarray'>

python arrays numpy numpy-ndarray matrix-inverse
1个回答
0
投票
def identity_check(result_ab):
    size = result_ab.shape[0]
    identity = np.eye(size)
    print(identity)
    
    if (np.array_equal(result_ab, identity) == True) and result_ab.shape[0]==result_ab.shape[1]:
        print('Inverse!')
    else:
        print('Not inverse.')

示例用例:

© www.soinside.com 2019 - 2024. All rights reserved.