3
1次元配列から(n,n)
-arrayを構築したいと思います。ここで、各行は前の配列に対して相対的に1つだけシフトしています。その結果Numpyでローリング行列を効率的に構築する
import numpy as np
r = np.array([1, 2, 3, 4, 5])
n = len(r)
MM = np.zeros((n, n), dtype=r.dtype)
for k in range(n):
MM[k, :] = np.roll(r, k)
print(MM)
:
[[1 2 3 4 5]
[5 1 2 3 4]
[4 5 1 2 3]
[3 4 5 1 2]
[2 3 4 5 1]]
はすなわち、for
-loopを避け、より速くこのnumpyのを行う方法がnumpyの中に大きなr
のために、あります次のコードは、このしていますか?
感謝を見て、これは私が望んでいた答えでした。 – Dietrich