我有两个numpy数组:其中一个是使用正弦函数获得的(因此,它具有浮点值),而另一个数组由整数组成。这样的数组的一个例子是:
x = np.array([0.43, 2.11, 3.67, 4.12, 7.05, 8.87, 9.1, 11, 11.67])
y = np.array([1, 3, 5, 9, 10])
这两个数组比这个玩具示例大得多。但是x大于y,并且包含y的元素。问题是,你必须天真地检查x中y中的给定元素两次:一次向上舍入,另一次向下舍入。所以一个简单的np.round()是不够的。
np.floor(x)
# array([0., 3., 4., 8., 9.])
np.ceil(x)
# array([ 1., 4., 5., 9., 10.])
例如,对于floor(x),0不存在于y中,但是ceil(x)给出1并且存在于y中。因此,对于x中的每个元素,需要将其向上和向下舍入,然后与y中的每个元素进行比较以找到匹配。
有没有更有效和/或更好的方法来实现这一目标?
1条答案
按热度按时间xxb16uws1#
与地板/天花板相比,似乎是合理的。
输出:
array([0.43, 2.11, 3.67, 4.12, 8.87, 9.1 ])
如果你有足够的内存来广播,你可以检查
y
的绝对距离是否在1: