如何提取包含最小函数值的数组行并展示对应坐标与函数值
实现方案
默认使用Python NumPy库处理数组,以下是完整实现代码和高亮输出方法:
核心逻辑代码
import numpy as np # 代入你实际的拼接后数组即可 arr = np.array([ [-5.53759409e-01, -2.68382610e-01, 4.06747784e+00], [-1.66055379e+00, -8.08889466e-01, 7.06720368e+01], [2.92172488e-01, 8.17347290e-01, 3.18001189e+00], [1.89072607e+00, -6.68502526e-01, 9.08233869e+01], [-1.31451627e+00, 1.61831269e+00, 5.41709058e+00], [1.15886824e+00, 3.31177259e-01, 5.14391851e+00], [1.87270676e+00, 1.24100260e+00, 2.64360316e+01], [1.93323801e+00, -5.64255644e-02, 7.28368451e+01], [1.33014215e+00, 1.96282476e+00, 2.96295301e-01] ]) # 查找第三列(函数值列)最小值对应的行索引 min_row_idx = np.argmin(arr[:, 2]) # 提取对应整行数据,拆分坐标和函数值 coord_x, coord_y, min_func_val = arr[min_row_idx]
高亮输出方案
分两种常用场景选择:
场景1:控制台终端输出
用ANSI转义码实现高亮,示例代码:
# 格式说明:\033[显示方式;前景色;背景色m 高亮内容 \033[0m 重置格式 print("第10代最小函数值对应完整数据:") print(f"坐标x:\033[1;32;40m{coord_x}\033[0m,坐标y:\033[1;32;40m{coord_y}\033[0m,最小函数值:\033[1;31;40m{min_func_val}\033[0m")
执行后坐标会显示绿色高亮,函数值显示红色高亮,和普通文本明显区分。
场景2:Jupyter Notebook/网页场景
用HTML标签实现高亮,示例代码:
from IPython.display import display, HTML display(HTML(f""" <p>第10代最小函数值对应完整数据:</p> <p>坐标x:<span style="color:green;font-weight:bold">{coord_x}</span>, 坐标y:<span style="color:green;font-weight:bold">{coord_y}</span>, 最小函数值:<span style="color:red;font-weight:bold">{min_func_val}</span></p> """))
特殊情况处理
如果数组中存在多个相同的最小函数值,np.argmin只会返回第一个出现的对应行索引,需要提取所有最小值行的话,替换索引查找逻辑为:
min_val = arr[:, 2].min() all_min_rows = arr[arr[:, 2] == min_val]
示例验证
你提供的示例运行后得到的结果为:
坐标x:1.33014215,坐标y:1.96282476,最小函数值:0.296295301
和你需要的最后一行数据完全匹配。
内容的提问来源于stack exchange,提问作者Weightlifting Without Limits
相关产品推荐
相关产品推荐

