【发布时间】:2014-04-29 04:33:45
【问题描述】:
我有这个 numpy 数组,其中每一行中的值将始终被排序并单调递增:
a = np.array([[1, 2, 3, 4, 8],
[2, 5, 6, 7, 8],
[5, 7, 11, 12, 13]])
我想为每一行搜索以下值(未排序或单调):
b = np.array([4.5, 2.3, 11.6])
以便我得到以下答案:
[4, 1, 3]
但是,searchsorted 不支持这个(感觉需要一个axis 关键字)。
对于一个非常大的数组,有没有一种有效的方法可以做到这一点?显然,使用for 循环我可以像这样索引数组a 和b:
for i in np.arange(np.alen(a)):
print a[i].searchsorted(b[i])
但是当a 很大时,这会很慢。
有没有办法在 numpy 中更有效地做到这一点?
【问题讨论】:
-
这道题为什么是负分?
标签: python arrays search numpy