np.amin()函数

本文解释关于amin函数的使用方法。

官方解释

链接🔗:https://numpy.org/doc/stable/reference/generated/numpy.amin.html

函数及其六个参数

np.amin() 函数和 np.min() 函数的作用的一致的。类似的 np.amax() 与 np.max() 的作用也是一致的。

函数定义

numpy.amin(a, axis=None, out=None, keepdims=< no value>, initial=< no value>, where=< no value>)

返回值

返回输入数组中最小值的标量或数组,具体取决于指定的轴和条件。

参数

  • a: 输入的数组。
  • axis: 可选。沿着哪个轴计算最小值。如果没有指定,计算整个数组的最小值
  • out: 可选。输出结果保存到该数组中。它必须具有与预期输出相同的形状。
  • keepdims: 可选。如果设置为 True,保持原数组的维度;否则,结果数组的形状将减小。
  • initial: 可选。用于指定最小值的初始值。这在数组为空的情况下特别有用。
  • where: 可选。用于指定条件,只有条件为 True 的元素才会被考虑。

实例参数 axis 和 keepdims:

import numpy as np

arr = np.array([[3, 7, 5],
                [8, 4, 2], 
                [6, 1, 9]])
min_value = np.amin(arr, axis=0, keepdims=True)  
min_value_keepdims = np.amin(arr, axis=0)  # axis=0 表示按照列

print(min_value)    # [[3 1 2]]
print(min_value.shape)  # (1, 3)

print(min_value_keepdims)  # [3 1 2]
print(min_value_keepdims.shape)  # (3,)

实例参数 initial :

如果有这个参数的话最终还需要跟这个参数进行比较,然后取最小的。

import numpy as np

arr = np.array([[3, 7, 5], 
				[8, 4, 2], 
				[6, 1, 9]])
min_value_initial = np.amin(arr, axis=1, initial=2)
print(min_value_initial)  # 输出 [2, 2, 1]

实例参数 where :

import numpy as np

arr = np.array([[3, 7, 5], 
				[8, 4, 2], 
				[6, 1, 9]])
condition = (arr % 2 == 0)  # 仅考虑偶数元素,
min_value_where = np.amin(arr, axis=1, where=condition, initial=10)
print(min_value_where)  # 输出 [10  2  6]

那如果有元素不是偶数呢?这个例子就告诉我们答案了。—等于initial。
那如果只是用where参数,不指定initial参数是不是可以呢?答案是不可以。
会报如下错误,即便所有元素都是偶数满足condition

ValueError: The error occurred because the np.amin() function requires an initial value to be specified when using a where mask.

错误解释:
  • reduction operation ‘minimum’ does not have an identity: 最小值计算没有一个默认的单位元。例如,对于加法来说,单位元是 0,因为 a + 0 = a。对于最小值计算,没有类似的单位元。
  • to use a where mask one has to specify ‘initial’: 在使用 where 掩码时,必须指定 initial 参数

分析:

Q : 为什么一定需要 initial 参数?
A : 在指定了 where 掩码的情况下,计算可能会忽略数组中的一些元素。如果所有被考虑的元素都被掩码过滤掉,那么没有任何值可以用于计算最小值。这时,initial 参数提供了一个初始值,以确保计算能够进行。即便所有元素都是偶数满足condition,也必须在使用where的时候同时使用initial参数。

实例参数 out(没啥用我感觉):

import numpy as np

arr = np.array([[3, 7, 5], 
				[8, 4, 2], 
				[6, 1, 9]])
out_arr = np.empty((3,))
np.amin(arr, axis=1, out=out_arr)
print(out_arr)  # 输出 [3. 2. 1.]
YOLO系列是基于深度学习的端到端实时目标检测方法。 PyTorch版的YOLOv5轻量而性能高,更加灵活和易用,当前非常流行。 本课程将手把手地教大家使用labelImg标注和使用YOLOv5训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv5使用ultralytics/yolov5,在Ubuntu系统上做项目演示。包括:安装YOLOv5、标注自己的数据集、准备自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型和性能统计。 希望学习在Windows系统上演示的学员,请前往《YOLOv5(PyTorch)实战:训练自己的数据集(Windows)》课程链接:https://edu.csdn.net/course/detail/30923本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括:《YOLOv5(PyTorch)目标检测实战:训练自己的数据集》Ubuntu系统 https://edu.csdn.net/course/detail/30793Windows系统 https://edu.csdn.net/course/detail/30923《YOLOv5(PyTorch)目标检测:原理与源码解析》课程链接:https://edu.csdn.net/course/detail/31428《YOLOv5目标检测实战:Flask Web部署》课程链接:https://edu.csdn.net/course/detail/31087《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》课程链接:https://edu.csdn.net/course/detail/32303《YOLOv5目标检测实战:Jetson Nano部署》课程链接:https://edu.csdn.net/course/detail/32451《YOLOv5+DeepSORT多目标跟踪与计数精讲》课程链接:https://edu.csdn.net/course/detail/32669《YOLOv5实战口罩佩戴检测》课程链接:https://edu.csdn.net/course/detail/32744《YOLOv5实战中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/35209 《YOLOv5实战垃圾分类目标检测》课程链接:https://edu.csdn.net/course/detail/35284  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值