我想比较两个变量input_items
和temp
是否相等。为了让您了解他们的数据类型 -
print input_items
打印 -
[array([ 50., 1., 0., ..., 0., 0., 0.], dtype=float32), array([ 50., -2., 0., ..., 0., 0., 0.], dtype=float32)]
在Python中最好的方法是什么?
答案 0 :(得分:3)
我认为allclose对你的情况有好处,因为你需要比较浮点数
import numpy as np
a = np.arange(10)
print a
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
b = np.arange(10)
print b
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print np.allclose(a, b)
#True
b[1] = 10
#array([ 0, 10, 2, 3, 4, 5, 6, 7, 8, 9])
print np.allclose(a, b)
#False
要比较数组列表,您可以将np.allclose与all
组合a = [np.array([1, 2, 3]), np.array([1, 2, 3])]
b = [np.array([1, 2, 3]), np.array([1, 2, 3])]
all([np.allclose(x, y) for x, y in zip(a, b)])#True
b = [np.array([1, 2, 3]), np.array([1, 2, 4])]
all([np.allclose(x, y) for x, y in zip(a, b)])#False
PS抱歉我的英语不好
答案 1 :(得分:2)
如前所述,您应该构建二维数组并使用numpy.allclose。
import numpy
#lists of arrays
yourarray1 = [numpy.random.random(5) for i in range(3)]
yourarray2 = [numpy.random.random(5) for i in range(3)]
#2-D arrays with list elements as rows
nw2Darray1 = numpy.array(yourarray1).reshape((3,5))
nw2Darray2 = numpy.array(yourarray2).reshape((3,5))
numpy.allclose(nw2Darray1,nw2Darray2) #returns True/False