在numpy数组中找到连续的正、负和零可以通过以下步骤实现:
import numpy as np
arr = np.array([1, -2, 3, 0, -4, 5, 6, -7, 0, 8])
np.where()
结合逻辑判断来找到连续的正数。positive_indices = np.where(arr > 0)[0]
positive_ranges = np.split(positive_indices, np.where(np.diff(positive_indices) != 1)[0] + 1)
这将返回一个列表positive_ranges
,其中包含了连续的正数的索引范围。
np.where()
结合逻辑判断来找到连续的负数和零。non_positive_indices = np.where(arr <= 0)[0]
non_positive_ranges = np.split(non_positive_indices, np.where(np.diff(non_positive_indices) != 1)[0] + 1)
这将返回一个列表non_positive_ranges
,其中包含了连续的负数和零的索引范围。
完整的代码示例如下:
import numpy as np
arr = np.array([1, -2, 3, 0, -4, 5, 6, -7, 0, 8])
positive_indices = np.where(arr > 0)[0]
positive_ranges = np.split(positive_indices, np.where(np.diff(positive_indices) != 1)[0] + 1)
non_positive_indices = np.where(arr <= 0)[0]
non_positive_ranges = np.split(non_positive_indices, np.where(np.diff(non_positive_indices) != 1)[0] + 1)
print("连续的正数索引范围:", positive_ranges)
print("连续的负数和零索引范围:", non_positive_ranges)
这样就可以找到numpy数组中连续的正数、负数和零的索引范围了。
领取专属 10元无门槛券
手把手带您无忧上云