Я работаю с массивами NumPy.Эффективно изменить матрицу numpy
У меня есть 2N
длины вектор D
а и хочу, чтобы изменить его часть в N x N
массив C
.
Сейчас этот код делает то, что я хочу, но является узким местом для увеличения N
:
`` `
import numpy as np
M = 1000
t = np.arange(M)
D = np.sin(t) # initial vector is a sin() function
N = M/2
C = np.zeros((N,N))
for a in xrange(N):
for b in xrange(N):
C[a,b] = D[N + a - b]
` ``
После C
сделан я иду вперед и сделайте некоторую матричную арифметику на нем и т. д.
Этот вложенный цикл довольно медленный, но поскольку эта операция является по существу изменением индекса Я понял, что могу использовать встроенную формулу NumPy (numpy.reshape
), чтобы ускорить эту часть.
К сожалению, я не могу найти способ преобразования этих показателей.
Любая помощь, ускоряющая эту часть вверх?
Awesome! Это обеспечило значительное ускорение цикла. – jjgoings
@jjgoings Yup, подтвердил это! – Divakar