gpt4 book ai didi

python - 测试两个 numpy 二维数组的相等性

转载 作者:行者123 更新时间:2023-11-30 22:57:06 25 4
gpt4 key购买 nike

我一直在尝试将单个元素从一个二维数组复制到另一个二维数组。我的代码如下:

tp_matrix = np.array(tp_matrix)
my_array = np.empty(shape = (tp_matrix.shape))

for x in range(tp_matrix.shape[0]):
for y in range(tp_matrix.shape[1]):
my_array[x][y] = tp_matrix[x][y]


if(np.array_equal(my_array, tp_matrix)):
print('Equal')
else:
print('Not equal')

但是由于某种原因这两个数组并不相等。这里有什么问题,我能做些什么来解决它?

我无法使用 numpy 的复制函数,因为我想稍后对 my_array 中的某些元素进行修改,其他值与 my_matrix 相同。

编辑:运行代码时我收到以下消息:FutureWarning:元素比较失败;返回标量,但将来将执行元素比较这是否意味着数据集(tp_matrix)有问题?

编辑 2:我尝试了 allclose 和 isclose 函数,但收到此错误:TypeError:输入类型不支持 ufunc 'isfinite',并且根据转换规则 ''safe'',无法将输入安全地强制为任何受支持的类型数据存储为 float 。而且它有点大(399 x 5825)。

编辑 3:已解决。我不得不重新安装 python。

最佳答案

使用np.allclose测试 float 组的(几乎)相等性,因为 float 字在计算机中的表示方式。

有关更多详细信息,您可以阅读例如 "What Every Computer Scientist Should Know About Floating-Point Arithmetic"

关于python - 测试两个 numpy 二维数组的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36828021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com