gpt4 book ai didi

python - 如何快速制作这种相等数组(在 numpy 中)?

转载 作者:太空狗 更新时间:2023-10-30 00:41:43 25 4
gpt4 key购买 nike

我有两个 numpy 数组(2 维),例如

a1 = array([["a","b"],["a","c"],["b","b"],["a","b"]])
a2 = array([["a","b"],["b","b"],["c","a"],["a","c"]])

获得这样的矩阵最优雅的方法是什么:

array([[1,0,0,0],
[0,0,0,1],
[0,1,0,0],
[1,0,0,0]])

如果 all(a1[i,:] == a2[j,:]) 则元素 (i,j) 为 1,否则为 0

(所有涉及两个 for 循环的东西我都不认为优雅)

最佳答案

>>> (a1[:,numpy.newaxis] == a2).all(axis=2)
array([[ True, False, False, False],
[False, False, False, True],
[False, True, False, False],
[ True, False, False, False]], dtype=bool)

如果你真的需要整数,最后一步转换为int:

>>> (a1[:,numpy.newaxis] == a2).all(axis=2).astype(int)
array([[1, 0, 0, 0],
[0, 0, 0, 1],
[0, 1, 0, 0],
[1, 0, 0, 0]])

关于python - 如何快速制作这种相等数组(在 numpy 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8356745/

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