numpy获得所有不为0元素的索引
时间: 2024-02-03 20:15:43 浏览: 187
你可以使用`numpy.nonzero()`函数来获得所有不为0元素的索引,如下所示:
```python
import numpy as np
arr = np.array([[0, 1, 0],
[2, 0, 3],
[0, 4, 5]])
indices = np.nonzero(arr)
print(indices)
```
输出:
```
(array([0, 1, 1, 2, 2]), array([1, 0, 2, 1, 2]))
```
这里,`np.nonzero(arr)`返回一个元组,其中第一个元素是所有非零元素的行号,第二个元素是所有非零元素的列号。因此,可以看到索引数组中包含了所有不为0元素的位置。
相关问题
创建一个形状为(5,5)的numpy数组,其中每个元素的值等于其所在行和列索引值之和
可以使用numpy中的meshgrid函数来生成行列索引值矩阵,然后将它们相加即可得到每个元素的值。下面是代码实现:
```python
import numpy as np
# 生成行列索引值矩阵
x, y = np.meshgrid(np.arange(5), np.arange(5))
# 计算每个元素的值
result = x + y
print(result)
```
输出结果为:
```
[[0 1 2 3 4]
[1 2 3 4 5]
[2 3 4 5 6]
[3 4 5 6 7]
[4 5 6 7 8]]
```
创建一个形状为(5,5)的numpy数组,其中每个元素的值等于其所在的行和列的索引之和
可以使用numpy的meshgrid函数创建行列坐标矩阵,然后将它们相加即可得到每个元素的值。以下是代码示例:
```python
import numpy as np
# 创建行列坐标矩阵
x, y = np.meshgrid(np.arange(5), np.arange(5))
# 计算每个元素的值
arr = x + y
print(arr)
```
输出结果为:
```
[[0 1 2 3 4]
[1 2 3 4 5]
[2 3 4 5 6]
[3 4 5 6 7]
[4 5 6 7 8]]
```
每个元素的值等于其所在的行和列的索引之和,符合要求。
阅读全文