假设我有一个数组a
,
a = np.array([50,49,47,55,68,70,65])
并且我想要第一个值的索引大于65(即4
)。在Numpy中完成此任务的最快方法是什么(因为我的实际数据集要大得多)?
我建议使用numba
,它是decorators。多亏了这个库,您可以在使用普通Python时获得比numpy更好的性能分数(或与标准相当)。
在您的情况下,可能是:
import numba
@numba.njit
def find_greater(array, threshold: int):
for i in range(len(array)):
if array[i] > threshold:
return i
该选项在时间复杂度、最大O(n)
(通常要小得多)方面优于注释中建议的方法。
Argmax会找到第一个True的索引,尝试这个np.argmax(a
我需要找到高于指定阈值的的第一个和最后一个元素。我找到了以下解决方案,这是有效的,但它看起来有点令人费解。有没有更简单/更蟒蛇的方式?
我有一个2D麻木阵列: 如何获取大于的元素的索引? 现在,我正在做以获取每个最大值的索引,结果是:。我如何实现上述操作?
问题内容: 假设我有 有没有一种有效的numpy方法来查找值变化的每个索引?例如,我想要一些结果, 如果某些numpy例程无法做到这一点,那么在python中执行此操作的快速方法是什么?推荐给一些很好的numpy教程对我来说也很有用,因为我是个numpy初学者。 问题答案: 您可以通过将每个元素与其相邻元素进行比较来以numpy的形式获得此功能; 要获取索引,请使用“ where”功能 在这里,您
我有一个向量,想找到第一个大于100的值的位置。
问题内容: 我有一个数组: 我希望在此数组中找到多个值的行的索引: 对于此示例,我想要一个类似的结果: 我有一个执行此操作的代码,但我认为它过于复杂: 我找到了类似问题的答案,但仅适用于一维数组。 有没有一种方法可以更简单地完成我想要的工作? 问题答案: 方法1 一种方法是像这样 方法#2 一种内存有效的方法是将每一行转换为等效的线性索引,然后使用np.in1d,例如, 方法3 使用np.sear