【Python】取两组值中较小值的索引,根据该索引取另外两组值中相应的元素

这段代码展示了如何利用numpy库处理数据。首先,通过np.hstack()将两个数据集A和B按水平方向合并。接着,使用np.argmin()找到A和B中较小值的索引。然后,对C和D数据集进行维度扩展,并通过np.concatenate()沿着指定轴连接。最后,根据找到的索引从连接后的数组中选取对应元素。

问题:例如有两组n1的数据(ndarray)A和B,另外两组数据MN的C和D,根据A和B中较小的值的索引取出其所在对应的C或D中的位置?
1.先用np.hstack()将A和B按水平方向叠加
2.用np.argmin()参数axis=1,选择A和B中较小值的索引
3.用np.expand_dims()分别对C和D增维,参数axis=2,则在2轴上增加
4.用np.concatenate()将增维后的C和D按照axis=2连接,得到E
5.最后从E中按照索引值切片
程序如下:

stack = np.hstack((tmp_obj.reshape((-1,1)), self.p_fit.reshape((-1,1)))) #将参数元组的元素数组按水平方向进行叠加
best_arg = np.argmin(stack,axis=1).ravel().tolist()
self.p_fit = np.minimum(tmp_obj,self.p_fit)
X_expand = np.expand_dims(self.X, axis=2) #用于扩展数组的形状,表示在2位置添加数据
p_best_expand = np.expand_dims(self.pbest, axis=2)
concat = np.concatenate((X_expand, p_best_expand), axis=2)
self.pbest = concat[range(0, len(best_arg)),:,best_arg]

以上代码来自https://github.com/Panacea1999/calculation_algorithm/blob/main/PSO_handmade_python

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值