Самый быстрый способ найти показатели двух массивов Numpy, которые соответствуют условиюPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Самый быстрый способ найти показатели двух массивов Numpy, которые соответствуют условию

Сообщение Anonymous »

Скажем, у меня есть два больших массива Numpy A1 и A2 (каждый с 10000 номерами). Я хочу найти индексы в каждом массиве, которые соответствуют условию f (x1, x2)> 0 . Чтобы быть ясным, для каждого номера в A1 (или A2 ), если есть любое число в A2 (или A1 ), который соответствует условию, то это допустимое число. На данный момент я использую один цикл по сравнению с A1 и использую только векторизацию Numpy для расчетов на A2 :
import numpy as np

a1 = np.random.rand(10000)
a2 = np.random.rand(10000)

def f(x1, x2):
return np.exp(x2 - x1) / 1.2 - 1

valid_i1_set = set()
valid_i2_set = set()
for i1 in range(len(a1)):
valid_i2 = np.nonzero(f(a1[i1], a2) > 0)[0].tolist()
valid_i2_set.update(valid_i2)
if len(valid_i2) > 0:
valid_i1_set.add(i1)
print(sorted(valid_i1_set))
print(sorted(valid_i2_set))
< /code>
Я думаю, что должен быть более быстрый способ сделать это без цикла. Создание массива продуктов из 10000x10000 также не кажется правильным. Есть предложения?

Подробнее здесь: https://stackoverflow.com/questions/796 ... -condition
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»