def shift_rows_sine(X, start, num_rows, offset, phase, freq, padding):
y = np.zeros(num_rows)
for i in range(0,len(phase)):
y += np.sin(phase[i] + freq[i] * 2 * np.pi * np.arange(0, num_rows) / int(num_rows/2))
_offset = np.multiply(offset, y)
I = X.copy()
pad = None
if padding == PADDING_CIRCULAR:
for i in prange(0, len(_offset)):
row = np.roll(I[start + i , 0:-1], int(_offset[i]), axis=0)
I[start + i, 0:-1] = row
return I
评论列表
文章目录