把ndarray中值为0和1的索引和值取出来
时间: 2024-02-09 19:08:55 浏览: 149
Java中值传递和引用传递的区别
如果你想要获取一个 NumPy 数组中值为 0 或 1 的元素的索引和对应的值,可以使用 `numpy.where()` 函数,但需要指定两个条件。这个函数返回一个包含值为 True 的元素的索引的元组,你可以使用这个索引元组来获取对应的值。
下面是一个例子:
```python
import numpy as np
# 创建一个二维数组
a = np.array([[1, 0, 3], [0, 5, 0], [7, 0, 9]])
# 获取值为 0 或 1 的元素的索引
index = np.where((a == 0) | (a == 1))
# 获取值为 0 或 1 的元素的值
value = a[index]
print("Index of zero or one elements:", index)
print("Values of zero or one elements:", value)
```
输出结果为:
```
Index of zero or one elements: (array([0, 1, 1, 2]), array([0, 1, 2, 1]))
Values of zero or one elements: [1 0 1 0]
```
在上面的例子中,我们首先创建了一个二维数组 `a`,然后使用 `np.where()` 函数获取了值为 0 或 1 的元素的索引,需要指定两个条件,用 `|` 运算符连接。这个函数返回的是一个包含两个数组的元组,第一个数组包含行索引,第二个数组包含列索引。我们将这个元组赋值给变量 `index`。
接下来,我们使用 `index` 变量获取了值为 0 或 1 的元素的值,使用这个变量可以从数组中获取对应的值。我们将这个值赋值给变量 `value`。
最后,我们分别输出 `index` 和 `value` 变量的值,得到了值为 0 或 1 的元素的索引和对应的值。
阅读全文