Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 9, 2013 19:19:33

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Вычислительные рассчеты

keekdown
Я думал что Numpy and Scipy обеспечивают оптимизацию таких вещей
обеспечивают, если ты используешь методы модуля numpy
keekdown
Ну как про С реализацию функций я думал.
уже все реализовано, бери, пользуйся

EDIT: или используй pypy он развернет цикл в нативный код

Отредактировано bismigalis (Ноя. 9, 2013 19:22:08)

Офлайн

#2 Ноя. 9, 2013 19:23:21

keekdown
Зарегистрирован: 2013-11-09
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Вычислительные рассчеты

bismigalis
такой метод наврятли присутствует в библиотеке numpy scipy

Офлайн

#3 Ноя. 9, 2013 19:32:34

keekdown
Зарегистрирован: 2013-11-09
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Вычислительные рассчеты

Я уже попробовал pypy.Да быстрее,но не настолько.Знаю что на С матрица считается минуты за 2,я писал там подобную реализацию.Возможно есть выход пользоваться слайсингом..Если не по сабжу,то я узнал что оказывается есть модуль Messege Passing Interface для параллельного программирования.Видно значит можно использовать этот язык в вычислениях таких.

Офлайн

#4 Ноя. 9, 2013 19:38:06

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Вычислительные рассчеты

keekdown
Знаю что на С матрица считается минуты за 2
ого, так много, а ты еще на питоне хочешь
тут наверное надо GPU задействовать :)

Офлайн

#5 Ноя. 9, 2013 19:41:58

keekdown
Зарегистрирован: 2013-11-09
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Вычислительные рассчеты

bismigalis
Ладно,спасибо за ответы.Был рад пообщаться.

Офлайн

#6 Ноя. 9, 2013 20:34:54

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Вычислительные рассчеты

keekdown
Ладно,спасибо за ответы.

Я вообще нуб в вычислительных расчетах. Про numpy только слышал краем уха. Щас стало интересно полез в документацию, и вижу что ты нихрена не понял как она работает.

keekdown
Был рад пообщаться.
Заходи ещё.

Офлайн

#7 Ноя. 9, 2013 22:52:16

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Вычислительные рассчеты

from math import pi
import numpy as np
 
def calcf(n):
    const = 2**0.5 * pi 
    
    make_x = np.vectorize(lambda i, n : 1.0 / n * i)
    x = make_x(np.arange(n+1), n)
    
    one = np.sin(pi*x)*const 
 
    return np.vstack(e*one for e in one)
 
print(calcf(10000))

Офлайн

#8 Ноя. 10, 2013 06:13:58

keekdown
Зарегистрирован: 2013-11-09
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Вычислительные рассчеты

sergeek
Очень интересная реализация!Спасибо!Тщательнее почитаю документацию

Офлайн

#9 Ноя. 10, 2013 12:12:51

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Вычислительные рассчеты

vectorize тут лишний даже

from math import pi
import numpy as np
  
def calcf(n):
    const = 2**0.5 * pi
     
    x = 1.0 / n * np.arange(n+1)
    one = np.sin(pi*x)*const 
    return np.vstack(e*one for e in one)

Офлайн

#10 Ноя. 11, 2013 08:46:40

keekdown
Зарегистрирован: 2013-11-09
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Вычислительные рассчеты

sergeek
vectorize тут лишний даже
Только не понятно почему
const = 2**0.5*pi
.У меня было
const = 2* pi* pi
.Это немного разные вещи.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version