Tôi có một mảng numpy 2d và tôi muốn cuộn từng hàng theo kiểu tăng dần. Tôi đang sử dụng np.roll
trong vòng lặp for
để thực hiện việc này. Nhưng kể từ khi tôi gọi nó hàng ngàn lần, mã của tôi rất chậm. Bạn có thể vui lòng giúp tôi làm thế nào để làm cho nó nhanh hơn.Cuộn numpy nhanh
đầu vào của tôi trông giống như
array([[4,1],
[0,2]])
và đầu ra của tôi trông giống như
array([[4,1],
[2,0]])
đây hàng 0 [4,1]
được chuyển bằng 0, và hàng đầu tiên [0,2]
được chuyển bằng 1. Tương tự thứ hai hàng sẽ được dịch chuyển bởi 2 và cứ tiếp tục như vậy.
EDIT
temp = np.zeros([dd,dd])
for i in range(min(t + 1, dd)):
temp[i,:] = np.roll(y[i,:], i, axis=0)
Bạn có thể thấy cách bạn * cuộn * bạn hàng? –
Đây là một giải pháp khả thi: http://stackoverflow.com/questions/20360675/roll-rows-of-a-matrix-independently –