np.where()用法?
一句话解释 :np.where(条件) 就是**"找出所有满足条件的位置(索引)"**。
import numpy as np
# 一个简单的数组
arr = np.array([5, 2, 8, 1, 8, 3])
# 找出 arr 中 等于 8 的位置
result = np.where(arr == 8)
print(result)
输出是:
(array([2, 4]),)
输出的还是个数组,而不是纯粹的索引列表。只有加上0之后才会得到一个纯粹的索引列表。
result = np.where(arr == 8)[0]
print(result)
输出是:
[2 4]
直接得到了一个干净的数组 [2, 4],这就是所有满足条件的索引。
np.where(col_std == 0)[0]啥意思?
demo说明一下:
import numpy as np
# 假设 col_std 是某个信号在不同位置上的标准差
col_std = np.array([0.5, 0.0, 0.3, 0.0, 0.1, 0.0, 0.6])
# 对应的位置索引: 0 1 2 3 4 5 6
col_std == 0 是一个布尔判断,结果是:
[False, True, False, True, False, True, False]
意思是:只有索引 1、3、5 的数值等于 0。
peak_indices = np.where(col_std == 0)[0]
print(peak_indices) # 输出:[1 3 5]
| 代码 | 意思 |
|---|---|
col_std == 0 |
判断哪些位置的标准差等于 0(得到 True/False) |
np.where(...) |
找出所有 True 的位置(返回元组) |
[0] |
从元组里把索引数组取出来 |