获取连续命中次数及其在NumPy数组中的第一个/最后一个索引,可以通过以下步骤实现:
import numpy as np
arr = np.array([0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1])
# 获取连续命中次数
consecutive_hits = np.diff(np.where(np.concatenate(([arr[0]], arr[:-1] != arr[1:], [True])))[0])[::2]
# 获取第一个连续命中的索引
first_index = np.where(arr == 1)[0][0]
# 获取最后一个连续命中的索引
last_index = np.where(arr == 1)[0][-1]
解释:
np.where(arr == 1)
:返回数组中值为1的元素的索引。np.concatenate(([arr[0]], arr[:-1] != arr[1:], [True]))
:将数组的第一个元素、相邻元素是否相等的布尔值数组和True连接起来,用于标记连续命中的起始和结束位置。np.diff()
:计算数组中相邻元素的差值,用于计算连续命中的次数。[::2]
:取连续命中次数中的偶数索引,因为连续命中的起始和结束位置交替出现。print("连续命中次数:", consecutive_hits)
print("第一个连续命中的索引:", first_index)
print("最后一个连续命中的索引:", last_index)
这样,你就可以获取连续命中次数及其在NumPy数组中的第一个/最后一个索引了。
注意:以上代码示例中没有提及腾讯云相关产品和产品介绍链接地址,因为腾讯云并没有直接与这个问题相关的产品或服务。
领取专属 10元无门槛券
手把手带您无忧上云