Для следующего кода Python рекомендовал мне использовать a.any.
Теперь, согласно моему коду, то, что показывают выходы, неверно.
l больше, чем 1, но на выходе печатается r вместо q=10.
from numpy import *
import numpy as np
for i in range (1,3):
r=np.random.uniform(0,3,i)
x=np.random.uniform(0,9,i)
h=np.random.uniform(0,1,i)
l=r+x
if (l<1.0).any:
q=r
elif (l>1.0).any:
q=10
print("q= ",q,"l= ",l)
@ Аран Ах, какие плохие ошибки. Спасибо, мой друг. Спасибо. и знаете ли вы, как изменить выходные данные этого кода с массивов на обычные числа? вывод [0,000121], но мне нужно 0,000121. Еще раз спасибо
@David q и l будут содержать 1,2 или 3 элемента, как вы хотите их распечатать?
@David, вы можете использовать * для распаковки итераций, например: print(*l)
Ошибка @con: аргумент print () после * должен быть повторяемым, а не int
@FlyingTeller Я хочу распечатать q и l, а затем найти их минимальное значение в выводе.
@David проблема, вероятно, в том, что (l> 1.0) .any () истинно, q становится 10 (int) вместо массива numpy (повторяемый). Вы можете просто сделать q = np.array ([10]) для обработки этого крайнего случая.
@ con- спасибо. У меня есть еще вопросы по поиску минимума и порядка печати. я должен открыть новый вопрос? или спросите здесь еще раз?
@David, вероятно, лучше всего открыть новый вопрос, этот раздел комментариев становится довольно длинным






Я посмотрел на твои вопросы. Это можно проверить, изменив случайное число.
использование np.random.uniform(0,1) не требует any(), если вам просто нужно случайное число. Но если важно иметь конкретные номера для каждого i, вы должны использовать any().
for i in range (1,3):
r=np.random.uniform(0,3)
x=np.random.uniform(0,9)
h=np.random.uniform(0,1)
l=r+x
if l<1.0:
q=r
elif l>1.0:
q=10
print("q= ",q,"l= ",l)
У вас есть вызов
any:if (l<1.0).any():