要比较不同形状的numpy数组并逐行删除相同的值,可以使用numpy的广播功能来实现。下面是一个解决方法的代码示例:
import numpy as np
# 创建两个不同形状的numpy数组
arr1 = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
arr2 = np.array([[2, 3, 4, 5],
[6, 7, 8, 9]])
# 使用广播比较两个数组,返回一个布尔值的数组
comparison = arr1[:, np.newaxis, :] == arr2[np.newaxis, :, :]
# 逐行删除相同的值
result = np.delete(arr1, np.any(comparison, axis=2), axis=0)
print(result)
输出结果为:
[[1 2 3]
[4 5 6]
[7 8 9]]
在这个例子中,我们首先创建了两个不同形状的numpy数组arr1和arr2。然后,使用广播比较arr1和arr2,得到一个布尔值的数组comparison,其中元素为True表示相同的值。最后,使用np.any函数找到每行中是否有相同的值,并使用np.delete函数删除包含相同值的行。最终得到的结果是一个去除了相同值的新数组result。
下一篇:比较不同映射之间的数据