Всякий раз, когда я пишу цикл for, я спрашиваю себя, не будет ли более функциональный способ написать его. Я не могу придумать что-то для этого цикла, заполняя столбцы матрицы с sin/cos.Заполните столбцы матрицы с sin/cos без цикла
k = 5 #this is any odd integer
t = np.arange(0,N)/fs #time array for the sin/cos
A = np.zeros((N,k))
A[:,0] = 1
for i in range(1, k, 2):
A[:,i] = np.cos(2*np.pi*freq*t*(i+1)/2)
A[:,i+1] = np.sin(2*np.pi*freq*t*(i+1)/2)
Я использую numpy, поскольку это используется для большей математики после этого. Я понимаю, что, вероятно, нет никакой пользы в замене цикла for, поскольку это довольно тривиально, но есть ли способ заменить это на цикл?
в Python вы можете использовать несколько функциональных парадигм программирования. Но это не прежде всего функциональный язык программирования. Переписывание numpy-кода функциональным способом редко имеет смысл. – cel