我有以下向量:
import numpy as np
x = np.array([0.4, 0.6])
y = np.array([0, 0.2, 0.4, 0.6, 0.8, 1])
字符串
什么样的运算能得到这样的矩阵?
False False True False False False
False False False True False False
型
换句话说,除了x中的值按行出现在y中之外,所有的值都为False。请注意,我不能使用for循环,因为这是我处理大型矩阵的用例的一个玩具示例。
1条答案
按热度按时间bvpmtnay1#
我把Nin17和chrslg的评论做成了一个答案。
x[:, None] == y
或np.isclose(x[:,None], y)
都可以工作。在测试了每个操作所花费的时间之后,我发现了从1到2000的不同大小的列表的平均每次操作时间:字符串
虽然时间表明
x[:, None] == y
甚至x.round(z)[:, None] == y.round(z) #0.0010015535354614257 sec
可能看起来更快,但np.close
的好处是保持了比较值的意图,而没有使用==
的数值错误的机会。在评论中可以看到很多例子。