Tag: performance

Быстрое использование моей программы с компиляцией

Я сделал сито для создания простых чисел. Я занимаюсь школьным проектом по RSA, который включает в себя некоторые программы. Я буду использовать простые для системы RSA, но потому что для моего эссе безопасность не очень важна. Однако большие простые числа намного сложнее, и мне это нравится. Код, который я использую: def Zeef(a): import math upperBound […]

Оптимизировать решение A * x = B для матрицы трехдиагональных коэффициентов

У меня есть система уравнений в виде A*x = B где [A] – матрица трехдиагональных коэффициентов. Используя Решатель numpy.linalg.solve я могу решить систему уравнений для x. См. Пример ниже о том, как я развиваю трехдиагональный [A] мартикс. вектор {B} и решить для x : # Solve system of equations with a tridiagonal coefficient matrix # […]

Очень медленный доступ указателя буфера Numpy

Я пытаюсь получить указатель на массив Numpy, чтобы я мог быстро его манипулировать в моем Cython-коде. Я нашел два способа получить указатель буфера, один с использованием array.__array_interface__['data'][0] а другой – с array.ctypes.data . Они оба мучительно медленны. Я создал небольшой класс Cython, который просто создает массив numpy и сохраняет указатель на его буфер: cdef class […]

Более элегантный способ присвоить список в соответствии со значениями

Я хотел бы сопоставить список по числам в соответствии со значениями. Например: ['aa', 'b', 'b', 'c', 'aa', 'b', 'a'] -> [0, 1, 1, 2, 0, 1, 3] Я пытаюсь достичь этого, используя numpy и map dict. def number(lst): x = np.array(lst) unique_names = list(np.unique(x)) mapping = dict(zip(unique_names, range(len(unique_names)))) # Translating dict map_func = np.vectorize(lambda name: […]

numpy: совокупный показатель множественности

У меня есть отсортированный массив ints, который может иметь повторения. Я хотел бы считать последовательные равные значения, перезапуская с нуля, когда значение отличается от предыдущего. Это ожидаемый результат, реализованный с помощью простого цикла python: import numpy as np def count_multiplicities(a): r = np.zeros(a.shape, dtype=a.dtype) for i in range(1, len(a)): if a[i] == a[i-1]: r[i] = […]

python panda объединяет динамические столбцы, удаляя дубликаты

мы используем случай, когда нам нужно объединить все значения столбцов в строке путем удаления дубликатов. Данная информация хранится в фрейме данных panda. Например, рассмотрим ниже фрейм данных df со столбцами A, B, C ABC X1 AX X1 X2 X2 X1 X3 X3 X3 X4 XX XX Я хотел бы добавить новый столбец, который объединяет от […]

python numpy speed up 2d дублированный поиск

Мне нужно найти дубликаты в массиве 2d numpy. В результате я хочу список с той же длиной, что и вход, который указывает на первое вхождение соответствующего значения. Например, массив [[1, 0, 0], [1, 0, 0], [2, 3, 4]] имеет два равных элемента 0 и 1. Метод должен возвращать [0, 0, 2] (см. примеры в коде […]

как улучшить производительность numpy в этом коротком коде?

Я пытаюсь понять, почему один из моих скриптов python медленный примерно в 4 раза по сравнению с gfortran, и я добрался до этого: import numpy as np nvar_x=40 nvar_y=10 def fn_tst(x): for i in range(int(1e7)): y=np.repeat(x,1+nvar_y) return y x = np.arange(40) y = fn_tst(x) print y.min(),y.max() Это примерно в 13 раз медленнее, чем следующий код […]

Ткачивание сельдерея для высокой производительности

Я пытаюсь отправить ~ 400 HTTP GET запросов и собрать результаты. Я бегу от джанго. Мое решение состояло в том, чтобы использовать сельдерей с gevent. Чтобы начать работу с сельдереем, я вызываю get_reports : def get_reports(self, clients, *args, **kw): sub_tasks = [] for client in clients: s = self.get_report_task.s(self, client, *args, **kw).set(queue='io_bound') sub_tasks.append(s) res = […]

Удалить границу вокруг изображения в Pygame

У меня есть некоторые поверхности в Pygame с прозрачным фоном. Они одинакового размера. Но на каждом из них нарисован круг разного размера, поэтому круг точно не соответствует изображению. Вот несколько примеров изображений (я сделал снимок экрана в Photoshop, чтобы вы могли четко видеть прозрачность и размер изображений): Теперь я хочу удалить прозрачную рамку вокруг изображения, […]

Python - лучший язык программирования в мире.