相关疑难解决方法(0)

Numpy第一次出现的值大于现有值

我有一个numpy的一维数组,我想找到一个值超过numpy数组中的值的索引的位置.

例如

aa = range(-10,10)
Run Code Online (Sandbox Code Playgroud)

找到位置,超出aa价值的位置5.

python numpy

125
推荐指数
6
解决办法
12万
查看次数

Numpy:快速找到第一个价值指数

如何找到Numpy数组中第一次出现数字的索引?速度对我很重要.我对以下答案不感兴趣,因为他们扫描整个数组并且在第一次出现时不停止:

itemindex = numpy.where(array==item)[0][0]
nonzero(array == item)[0][0]
Run Code Online (Sandbox Code Playgroud)

注1:该问题的答案似乎没有任何问题是否有Numpy函数返回数组中某些内容的第一个索引?

注2:使用C编译方法比Python循环更受欢迎.

python numpy find

96
推荐指数
9
解决办法
8万
查看次数

numpy获取索引值为true

>>> ex=np.arange(30)
>>> e=np.reshape(ex,[3,10])
>>> e
array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]])
>>> e>15
array([[False, False, False, False, False, False, False, False, False,
        False],
       [False, False, False, False, False, False,  True,  True,  True,
         True],
       [ True,  True,  True,  True,  True,  True,  True,  True,  True,
         True]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

我需要找到具有true或行的行,e其值大于15.我可以使用for循环进行迭代,但是,我想知道numpy是否可以更有效地执行此操作?

python numpy matrix

53
推荐指数
4
解决办法
7万
查看次数

Python中Eratosthenes的高效筛选

#Python中这个非常简短的代码试图模拟前N个自然数的"Sieve of Eratosthenes",其约束为(0)脚本短; (1)最小化'if语句'和'for/while循环'; (2)CPU时间效率.

import numpy as np
N = 10**5
a = np.array(range(3,N,2))
for j in range(0, int(round(np.sqrt(N),0))):
    a[(a!=a[j]) & (a%a[j] == 0)] = 0
    a = a[a!=0]
a = [2]+list(a)
Run Code Online (Sandbox Code Playgroud)

在Intel Core I5上,它返回第一个中的素数:

  • 在0.03秒内N = 100,000;
  • 在0.63秒内N = 1,000,000;
  • 在22.2秒内N = 10,000,000.

有人愿意在上述约束条件下分享CPU时间方面更高效的代码吗?

python numpy sieve-of-eratosthenes

4
推荐指数
1
解决办法
1296
查看次数

标签 统计

numpy ×4

python ×4

find ×1

matrix ×1

sieve-of-eratosthenes ×1