Tôi có một mảng có chiều rộng 4 chiều (x, y, z, thời gian) và muốn thực hiện một số numpy.polyfit
thông qua thứ nguyên thời gian, tại mỗi toạ độ x, y, z . Ví dụ:Hồi quy dọc theo một chiều trong một mảng có nhiều mảng
import numpy as np
n = 10 # size of my x,y,z dimensions
degree = 2 # degree of my polyfit
time_len = 5 # number of time samples
# Make some data
A = np.random.rand(n*n*n*time_len).reshape(n,n,n,time_len)
# An x vector to regress through evenly spaced samples
X = np.arange(time_len)
# A placeholder for the regressions
regressions = np.zeros(n*n*n*(degree+1)).reshape(n,n,n,degree+1)
# Loop over each index in the array (slow!)
for row in range(A.shape[0]) :
for col in range(A.shape[1]) :
for slice in range(A.shape[2]):
fit = np.polyfit(X, A[row,col,slice,:], degree)
regressions[row,col,slice] = fit
Tôi muốn truy cập mảng regressions
mà không phải trải qua tất cả các vòng lặp. Điều này có thể không?
[Câu trả lời] (http://stackoverflow.com/a/16315330/832621) đưa ra ví dụ về một vấn đề tương tự như của bạn ... –
@SaulloCastro chắc chắn - nhưng câu trả lời đó vẫn không mua bất kỳ lợi thế hiệu suất nào trên một vòng lặp Python bình thường, dễ đọc hơn IMO –