@value 数组_array_diff你总会用到,删除数组中指定的value

在开发过程中经常需要删除数组中某个值;

比如说有个数组;

a59fee9a5d024d55bc63339a5642bf2a

我们希望删除 李四 这个值;

常规的思路是先用 array_search 函数获取 李四 在

aa7d1273a7b84588ab0ffa01b5b6cd00

这里有个坑是为了避免要删除的值在数组第0个位置的时候;

此处不能使用 if(names中的键名;然后使用unset删除;为了严谨还得判断李四是否存在;¨G1G这里有个坑是为了避免要删除的值在数组第0个位置的时候;此处不能使用if(key) 来判断;

而是应该使用if ($key !== false) ;

另外unset 不会重新格式化数组的key ;

操作完后会是这个样子的;

482ccba4a6fb4bc99a35b47c8ddb5bfc

这个0和2少了1很是难受;

上面这两种操作中我们还可以用 array_splice 替代 unset;

b0170523002f4ef19b28f5c8010aaf16

而且一旦数组中有多个李四;

66fd79fab2c3474aa570dc0ca21d1507

罢特如果王麻子也有两个的话;

因为键名不能重复的原因;

这种操作后只会保留1个王麻子;

因此这种方式不够完美;

文章磨磨唧唧终于算是讲到了最后;

拿出了标题中的array_diff;

array_diff 本来是用来计算数组的差集;

8过根据我们小学学过的知识扩展下;

这个求差集可以用来删除数组指定的值;

如果忘了差集的概念;

现在可以翻开小学数学课本三年级上册《集合》复习下了;

99afbc6c79ee4adabc5423153bba61a8

array_diff 跟 unset 一样并不会格式化键名;

如果需要格式化键名;

就再加个 array_value;

99bbd7c7e4c94df580f4c6df3357ead1
588ee68d4e0d42deaab60e146a5d3da2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一段 Python 代码,用于对 CT 图像进行归一化处理。以下是每一行代码的解释: 1. `def normalizeIntensity(stack, peak_air, peak_soil):` 定义一个名为 `normalizeIntensity` 的函数,输入参数为 `stack`,`peak_air`,`peak_soil`。 2. `"""` 三个双引号表示这是一个文档字符串,用于对函数进行注释说明。 3. `@stack` 表示下一行代码是对 `stack` 参数的说明。 4. `(numpy array)` 表示 `stack` 参数的数据类型为 numpy 数组。 5. `a Numpy array which will be normalized.` 表示 `stack` 参数的作用是待归一化的 numpy 数组。 6. `@peak_air` 表示下一行代码是对 `peak_air` 参数的说明。 7. `(integer)` 表示 `peak_air` 参数的数据类型为整数。 8. `The peak value of histogram coresponding to the air region.` 表示 `peak_air` 参数的作用是表示空气区域的直方图峰值。 9. `@peak_soil` 表示下一行代码是对 `peak_soil` 参数的说明。 10. `(integer)` 表示 `peak_soil` 参数的数据类型为整数。 11. `The peak value of histogram coresponding to the soil region.` 表示 `peak_soil` 参数的作用是表示土壤区域的直方图峰值。 12. `"""` 闭合文档字符串。 13. `stack[stack<peak_air] = 0` 用于将小于 `peak_air` 的数组元素设置为 0。 14. `stack[stack>=peak_air] = stack[stack>=peak_air]-peak_air` 用于将大于等于 `peak_air` 的数组元素减去 `peak_air`。 15. `diff = peak_soil-peak_air` 计算土壤区域和空气区域的直方图峰值之差。 16. `return (stack/diff*1024).astype(np.uint16)` 返回归一化后的 numpy 数组,并将其转换为 16 位无符号整数类型。具体操作是先将 `stack` 数组除以直方图峰值之差 `diff`,再将结果乘以 1024。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值