【发布时间】:2021-08-03 19:11:26
【问题描述】:
我有两个名为 A 和 B 的 numpy ndarray。每个 ndarray 的维度为 2 x 3。对于每个网格点,我必须找到两个数组中最接近零的元素并相应地分配一个标志。该标志对数组 A 取值 1,对数组 B 取值 2。也就是说,如果数组 A 的 (0,0) 中的元素(即第 0 行和第 0 列)与 (0,0) 相比最接近于零数组 B 的元素,则输出在第 0 行和第 0 列的位置分配一个值 1。输出数组的维度为 1 x 3。
下面我举个例子
A= np.array([[0.1,2,0.3],[0.4,3,2]])
B= np.array([[1,0.2,0.5],[4,0.03,0.02]])
输出应该是
[[1,2,1],[1,2,2]]
有没有一种不用写 for 循环的有效方法?非常感谢。
【问题讨论】:
-
为什么输出数组的维度是 1 x 3?您在示例中显示的预期输出是 2 x 3。
-
是的,它是 2 乘 3。我的错!
标签: python numpy numpy-ndarray