gpt4 book ai didi

Python - 在二进制 numpy 数组中找到一维质心的最佳方法

转载 作者:太空狗 更新时间:2023-10-30 02:41:19 24 4
gpt4 key购买 nike

假设我有以下 Numpy 数组,其中只有一个连续的 1 切片:

import numpy as np
x = np.array([0,0,0,0,1,1,1,0,0,0], dtype=1)

我想找到 1 元素的一维质心的索引。我可以输入以下内容:

idx = np.where( x )[0]
idx_center_of_mass = int(0.5*(idx.max() + idx.min()))
# this would give 5

(当然,当 1 切片的元素数量为偶数时,这会导致粗略的近似。)有没有更好的方法来做到这一点,比如计算效率更高的 oneliner?

最佳答案

您不能简单地执行以下操作吗?

center_of_mass = (x*np.arange(len(x))).sum()/x.sum() # 5

%timeit center_of_mass = (x*arange(len(x))).sum()/x.sum()
# 100000 loops, best of 3: 10.4 µs per loop

关于Python - 在二进制 numpy 数组中找到一维质心的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39719140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com