Я мог бы иметь матрицу 3x3 или 6x6 (представленную в виде отдельных столбцов для верхнего треугольника) с миллионами временных шагов. Копирование может быть медленным и непомерно медленным.
Есть ли способ сделать это в NumPy изначально? Я пытался найти, как создать представление из нескольких непересекающихся массивов, но, похоже, ничего не существует.
Краткий фрагмент примера данных о том, что я пытаюсь сделать.
Код: Выделить всё
import numpy as np
NR = 10_000_000
A = np.random.random([2,2])
cov = np.dot(A, A.T)
cov_n = np.repeat(cov[np.newaxis, :,:], NR, 0)
# I really have these in memory.
# Can I compute the eigenvalues with NumPy without copy?
cov_00 = np.repeat(np.array([cov[0,0]]), NR, 0)
cov_11 = np.repeat(np.array([cov[1,1]]), NR, 0)
cov_01 = np.repeat(np.array([cov[0,1]]), NR, 0)
Собственные значения вычисляются с использованием подпрограмм LAPACK _sievd, _heevd.
Смогу ли я вызвать их непосредственно в подпрограмме, скомпилированной JIT? Сохранит ли это мне копию?
Подробнее здесь: https://stackoverflow.com/questions/797 ... oint-array
Мобильная версия