如何将一个numpy数组的非0项输出并且返回下标
时间: 2024-03-21 21:39:25 浏览: 91
可以使用 numpy 库中的 nonzero() 函数来实现该功能。该函数会返回一个元组,其中包含数组中非零元素的下标。
具体实现代码如下:
```python
import numpy as np
arr = np.array([0, 1, 0, 2, 3, 0, 4, 0])
nonzero_indexes = np.nonzero(arr)[0]
nonzero_values = arr[nonzero_indexes]
print("非零元素的下标:", nonzero_indexes)
print("非零元素的值:", nonzero_values)
```
输出结果为:
```
非零元素的下标: [1 3 4 6]
非零元素的值: [1 2 3 4]
```
需要注意的是,非零元素的下标和值分别通过两个变量存储,并且下标是一个一维数组。如果数组是多维的,则会返回对应维度的下标数组。
相关问题
python获取numpy数组长度
使用numpy数组的`shape`属性可以获取数组的长度和维度信息。`shape`返回的是一个元组,其中第一个元素表示数组的长度(即元素个数),第二个元素表示数组的维度。例如,以下代码获取了一个二维数组的长度:
```
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
length = arr.shape[0] # 获取数组的长度
print(length) # 输出 3
```
在这个例子中,`arr.shape`返回的是`(3, 2)`,表示数组的长度是3,维度是2。我们可以通过下标0来获取数组的长度。
numpy数组中某个数据的index
要查找一个numpy数组中某个数据的index,可以使用numpy库中的where函数。这个函数会返回一个包含符合条件的元素的下标的元组。
下面是一个例子,假设我们有一个numpy数组arr,要查找其中值为5的元素的下标:
```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 5, 8, 9, 10])
indexes = np.where(arr == 5)
print(indexes)
```
输出结果会是一个元组,包含符合条件的元素在数组中的下标:
```python
(array([4, 6]),)
```
这表示在数组arr中,值为5的元素分别在第4和第6个位置上。
阅读全文