Форум сайта python.su
Нужно обработку элементов матрицы вынести в отдельную процедуру. Ну например, пусть феункция обнуляет элементы матрицы. Простой код функции, наверное, имеет такой вид
def g(a):
... n=len(a)
... return zeros((n,n))
a=g(a)
>>> from numpy import *
>>> def f(a):
... n=len(a)
... a=zeros((n,n))
...
>>> a=ones((5,5))
>>> f(a)
>>> a
array([[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.]])
Офлайн
в функцию передается ссылка
Офлайн
zeros - создание новой матрицы, вам надо a(:,: )=0
Отредактировано (Май 17, 2011 19:50:51)
Офлайн
doza_andу меня в скрипте есть такой код:
zeros - создание новой матрицы, вам надо a(:,: )=0
def big_matrix_maker(bRow,bCol):
ni=len(bRow)
nj=len(bCol)
for i in range(ni):
....
for j in range(nj):
.....
A[i][j]=....
return A
Офлайн
A=…. это совсем не тоже самое что a=0 в одном случае питон перебирает элементы а в другом это делается внутри библиотеки Numpy. В нем оптимизация сводится часто сводится к векторизации т.е.
for i in range(n):
x[i]=y[i]*z[i]
x=y*z
Отредактировано (Май 17, 2011 23:41:58)
Офлайн
прикрутите psyco, будет быстрее
Офлайн