это мой первый вопрос здесь, и я думаю, что это относительно тривиально для вас. Я должен создать матрицу M1 1000x10 со стандартными логистически распределенными случайными числами. Затем я должен присвоить номера 1-4 элементам M2 (i, j) матрицы M2 1000x10 с помощью циклов For, если элементы матрицы M1 (i, j) удовлетворяют следующим условиям:
- M2 (i, j) = 1, если M1 (i, j) меньше -3
- M2 (i, j) = 2, если M1 (i, j) больше или равно -3, иm1 меньше 0
- M2 (i, j) = 3, если M1 (i, j) больше или равно 0 u m1 меньше 3
- M2 (i, j) = 4если M1 (i, j) больше или равно 3.
Я пришел к решению, которое работает, но оно объективно громоздко:
scale = 1
mu = 0
M1 = np.random.logistic(mu, scale, (1000, 10))
def FUN(i):
if i < -3:
return 1
else:
if i < 0 and i >= -3:
return 2
else:
if i < 3 and i >= 0:
return 3
else:
if i >= 3:
return 4
M2 = []
for j in M1:
for i in j:
M2.append(FUN(i))
M2 = np.reshape(M2, (1000, 10))
Теперь яЯ уверен, что есть много способов повысить эффективность решения. Как бы вы сделали? Заранее спасибо за ваши ответы - и, возможно, ваши объяснения!