得到where子句

	function where_str($arr) {
		$wstr = '';
		foreach ( $arr as $s1 ) {
			if(!$s1 [2]){$s1 [2]="1";}
			$name=$s1[0];
			$vl=trim($s1[1]);
			if($vl)
			switch ($s1 [2]) {
				case "1" ://包含
					$wstr .=  " and " . $name . " like '%" . $vl . "%'   ";
					break;
				case "2" ://等于
					$wstr .= " and " . $name . " = '" . $vl . "' ";
					break;
				
				case "3" ://大于
					$wstr .= " and " . $name . " > '" . $vl . "' ";
					break;
				case "4" ://小于
					$wstr .= " and " . $name . " < '" . $vl . "' ";
					break;
				case "5" ://大于等于
					$wstr .= " and " . $name . " >= '" . $vl . "' ";
					break;
				case "6" ://小于等于
					$wstr .= " and " . $name . " <= '" . $vl . "' ";
					break;
				case "7" ://不等于
					$wstr .= " and " . $name . " != '" . $vl . "' ";
					break;
				case "8" ://开始为
					$wstr .= " and " . $name . " like '" . $vl . "%' ";
					break;
				case "9" ://结束为
					$wstr .= " and " . $name . " like '%" . $vl . "' ";
					break;
			}
			
		}
		return $wstr;
	}
	
//输出查询条件字符串	
	 $fields=$this->cool_mdl->get_form_info();
		 foreach($sarr as $s){
			 if(!$s['type'] || $s['type']=="input"){
				$str='<input _name="'.$s['name'].'" size="10" class="input_txt" style="width:90px">';
			 }elseif($s['type']=="select"){
				 if(!$s['options']){
					$s['options']=$fields[$s['title']]['options'];
				 }
				 $s['options']="\r\n".trim($s['options']);
				 $s['other'].="_name='".$s['name']."'";
				$str=$this->form_mdl->form_select($s);
			 }elseif($s['type']=="between"){
				$str='<input _name="'.$s['name'].'" _type="5"  size="10" class="input_txt" style="width:70px" '.$s['other'].' /> - <input _name="'.$s['name'].'" _type="6"  size="10" class="input_txt" style="width:70px" '.$s['other'].' />';
				 
			 }
			 echo '<li> '.$s['title'].':'.$str.'</li>';
			 
		 }

内容概要:本文介绍了一个基于MATLAB实现的无人机三维路径规划项目,采用蚁群算法(ACO)与多层感知机(MLP)相结合的混合模型(ACO-MLP)。该模型通过三维环境离散化建模,利用ACO进行全局路径搜索,并引入MLP对环境特征进行自适应学习与启发因子优化,实现路径的动态调整与多目标优化。项目解决了高维空间建模、动态障碍规避、局部最优陷阱、算法实时性及多目标权衡等关键技术难题,结合并行计算与参数自适应机制,提升了路径规划的智能性、安全性和工程适用性。文中提供了详细的模型架构、核心算法流程及MATLAB代码示例,涵盖空间建模、信息素更新、MLP训练与融合优化等关键步骤。; 适合人群:具备一定MATLAB编程基础,熟悉智能优化算法与神经网络的高校学生、科研人员及从事无人机路径规划相关工作的工程师;适合从事智能无人系统、自动驾驶、机器人导航等领域的研究人员; 使用场景及目标:①应用于复杂三维环境下的无人机路径规划,如城市物流、灾害救援、军事侦察等场景;②实现飞行安全、能耗优化、路径平滑与实时避障等多目标协同优化;③为智能无人系统的自主决策与环境适应能力提供算法支持; 阅读建议:此资源结合理论模型与MATLAB实践,建议读者在理解ACO与MLP基本原理的基础上,结合代码示例进行仿真调试,重点关注ACO-MLP融合机制、多目标优化函数设计及参数自适应策略的实现,以深入掌握混合智能算法在工程中的应用方法。
### Pandas 中 `where` 函数的用法 Pandas 的 `where` 函数是一个强大的工具,能够根据指定条件对数据进行筛选和替换操作。它的核心作用是对满足特定条件的数据保留原值,而对其余部分应用替代值或其他逻辑处理。 #### 基本语法 以下是 `where` 函数的基本语法结构[^2]: ```python DataFrame.where(cond, other=np.nan, inplace=False, axis=None, level=None, errors='raise', try_cast=False) ``` - **参数说明**: - `cond`: 条件表达式,通常为布尔型 DataFrame 或 Series。 - `other`: 替代值,默认为 NaN。当不满足条件时使用的值。 - `inplace`: 是否就地修改原始数据框。 - `axis`, `level`, `errors`, 和其他选项则控制更复杂的场景行为。 #### 示例代码 下面通过几个具体示例展示如何使用 `where` 函数: ##### 示例 1: 使用简单条件筛选并替换不符合条件的部分 假设有一个简单的 DataFrame 数据集: ```python import pandas as pd import numpy as np data = {'A': [1, 2, 3], 'B': [4, 5, 6]} df = pd.DataFrame(data) # 将 A 列中小于等于 2 的值保持不变,其余位置填充为 None (NaN) result = df['A'].where(df['A'] <= 2, np.nan) print(result) ``` 运行上述代码会得到以下输出结果: ``` 0 1.0 1 2.0 2 NaN Name: A, dtype: float64 ``` ##### 示例 2: 对整个 DataFrame 应用复杂条件 考虑另一个稍微复杂的案例,在这里我们希望只显示那些数值大于平均数的单元格,并将其余部分设为空白字符串 `" "` : ```python mean_value = df.mean().max() filtered_df = df.where(df > mean_value, " ") print(filtered_df) ``` 这将打印出如下表格形式的结果[^3]: | | A | B | | --- | -------------- | -------------------| | 0 | "" | 4 | | 1 | "" | 5 | | 2 | 3 | 6 | 注意此处为了清晰起见简化了实际可能产生的空白字符表示方式。 #### 性能注意事项 尽管 `where()` 提供了一种优雅的方式来执行按元素条件运算,但在某些情况下可能会遇到性能瓶颈特别是涉及大规模数据集的时候。因此建议开发者们权衡不同方法之间的效率差异比如有时直接利用 `.loc[]` 可能达到更好的效果取决于具体的业务需求[^4]. #### 关键区别对比 NumPy 的 `where` 值得注意的是,Pandas 的 `DataFrame.where()` 方法签名与 Numpy 数组上的同名函数存在显著的区别。例如对于两个相同形状的对象 m(掩码),d1,d2 而言有关系成立:`df1.where(m,df2)` 类似于调用了 `np.where(m,df1,df2)` 这样的三元表达式构造[^5].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值