numpy.array如何获取元素的索引
时间: 2023-07-27 11:07:18 浏览: 94
在`numpy`中,可以使用`numpy.where()`函数来获取数组中元素的索引。
示例代码如下:
```python
import numpy as np
arr = np.array([3, 5, 2, 7, 1, 8, 4, 9, 6])
# 获取元素7的索引
idx = np.where(arr == 7)
print("元素7的索引为:", idx[0][0])
```
输出结果为:
```
元素7的索引为: 3
```
如果要获取多个元素的索引,可以将它们放在一个数组中,然后使用`numpy.in1d()`函数来判断数组中的元素是否在目标数组中。示例代码如下:
```python
import numpy as np
arr = np.array([3, 5, 2, 7, 1, 8, 4, 9, 6])
# 获取元素2和4的索引
idx = np.where(np.in1d(arr, [2, 4]))[0]
print("元素2和4的索引为:", idx)
```
输出结果为:
```
元素2和4的索引为: [2 6]
```
其中,`np.in1d()`函数返回一个布尔型数组,表示目标数组中是否包含数组中的元素。`np.where()`函数可以返回符合条件的元素的索引。
相关问题
如何获得numpy.array数组的索引
在NumPy中,你可以使用`numpy.where()`函数或者简单的整数索引来获取数组的索引。这两个方法都可以用于一维数组,但对于二维或多维数组,它们有不同的用法。
1. **使用**`numpy.where()`**:**
这个函数返回的是满足条件的元素的索引。例如,获取所有大于某个值的元素的索引:
```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
indices = np.where(arr > 3)
print(indices) # 输出 ((3,), (4,))
```
如果你想获取特定值的所有索引,可以这样做:
```python
indices = np.where(arr == 4)
print(indices) # 输出 ((3,))
```
2. **简单整数索引:**
对于一维数组,直接使用整数索引即可。例如,`arr[0]`表示第一个元素的索引,`arr[-1]`表示最后一个元素的索引。对于二维数组,可以提供两个索引,如`arr[i, j]`。
对于多维数组,你需要使用`[]`操作符并提供一系列的索引,例如获取行索引为2、列索引为3的元素:
```python
multi_dim_arr = np.array([[1, 2], [3, 4], [5, 6]])
index = (2, 3)
element = multi_dim_arr[index]
print(element) # 输出 6
```
numpy.ndarray查找元素index
可以使用numpy的argwhere函数来查找数组中某个元素的索引。
例如,我们有一个一维数组a:
```python
import numpy as np
a = np.array([1, 2, 3, 4, 5])
```
我们想要查找元素3的索引,可以使用argwhere函数:
```python
index = np.argwhere(a == 3)[0][0]
print(index) # 输出2
```
argwhere函数返回一个包含所有满足条件的元素索引的数组。因为我们只需要一个索引,所以我们可以使用[0][0]来获取它。
阅读全文