3
我想從一維數組構建一個(n,n)
數組,其中每行相對於前一個數據移動一個(包裝)一個。下面的代碼執行此操作:在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]]
有沒有辦法做到這一點numpy的更快,即避免了for
-loop,在NumPy的大r
?
謝謝,這是我所期待的答案。 – Dietrich