Python 寻找一个一维数组中最接近某个值的元素

Python 寻找一个数组中最接近某个值的元素

引言

今天做仿真的时候遇到了一个问题,就是如何获取一组数据中最接近某个元素的值。这里特来记录一下。

正文

比如,这里有一个一维数组。

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

我们想要获取到这中间最接近 5.4 的值,可以采用如下代码:

import numpy as np


def find_nearest(array, value):
    array = np.asarray(array)
    idx = (np.abs(array - value)).argmin()
    return array[idx]


arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(find_nearest(arr, 5.4))
"""
result:
5
"""

可以看到,我们成功获取到了想要的结果。
如果我们想要获取到最接近 5.4 的值在数组中对应的索引值,可以采用:

import numpy as np


def find_nearest(array, value):
    array = np.asarray(array)
    idx = (np.abs(array - value)).argmin()
    return idx


arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(find_nearest(arr, 5.4))
"""
result:
4
"""

可以看到,我们也成功获取到了想要的结果。

至于,二维或者三维数组可以先展平为一维数组,或者使用循环结构,这里不再做展示。

如果大家觉得有用,就请点个赞吧~

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以使用Python的SciPy库的stats模块来判断一组据是否符合泊松分布。具体的步骤如下: 1. 导入所需的库和模块 ```python from scipy import stats import numpy as np ``` 2. 准备据 假设我们有一个包含100个随机整据集,可以用NumPy生成: ```python data = np.random.randint(low=0, high=10, size=100) ``` 3. 计算据的均和方差 ```python mean = np.mean(data) variance = np.var(data) ``` 4. 使用SciPy库的stats模块进行拟合 ```python poisson_fit = stats.poisson.fit(data) ``` 5. 计算拟合后的均和方差 ```python poisson_mean = poisson_fit[0] poisson_variance = poisson_fit[1] ``` 6. 判断拟合是否合理 可以通过比较原始据的均和方差与拟合后的均和方差来判断拟合是否合理。如果拟合后的均和方差与原始据的均和方差非常接近,则说明据符合泊松分布。 ```python if np.isclose(mean, poisson_mean) and np.isclose(variance, poisson_variance): print("据符合泊松分布") else: print("据不符合泊松分布") ``` 完整的代码如下: ```python from scipy import stats import numpy as np # 准备据 data = np.random.randint(low=0, high=10, size=100) # 计算均和方差 mean = np.mean(data) variance = np.var(data) # 进行拟合 poisson_fit = stats.poisson.fit(data) # 计算拟合后的均和方差 poisson_mean = poisson_fit[0] poisson_variance = poisson_fit[1] # 判断拟合是否合理 if np.isclose(mean, poisson_mean) and np.isclose(variance, poisson_variance): print("据符合泊松分布") else: print("据不符合泊松分布") ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤奋的大熊猫

你的鼓励将是我写作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值