我试图找出每个i的k的最小值以及k最小时m的相应值
import numpy as np
R0=np.arange(1, 2, 0.9)
m=[3, 7.01559, 50, 13.3237, 16.4706]
for i in R0:
for j in m:
k=i/j
print('%.5f' % k)
print("The minimum number for R0 =",i,"is" "and is minimum at m=")
print('\n')
我希望我的输出为我提供:
0.33333
0.14254
0.02000
0.07505
0.06071
R0=1时的最小值为0.02000,并且在m=50时最小
0.63333
0.27083
0.03800
0.14260
0.11536
R0 =1.9时的最小波数为0.03800,m=50时最小
有人能帮我一下吗?
2条答案
按热度按时间ohfgkhjo1#
不要使用循环,使用麻木广播:
输出:
array([0.33333333, 0.14253969, 0.02 , 0.07505423, 0.06071424])
中间体:
mwg9r5ms2#
溶液1:幼稚
您可以修改现有代码以跟踪每次迭代的最小值:
溶液2:使用numpy数组操作
这个代码段执行数学运算的效率更高,而且可读性更好:
溶液3:纯麻木
按照@mozway提供的使用numpy broadcasting的技巧,下面的代码片段在进入打印循环之前,使用矢量化操作来划分数组并提取最小值:
输出: