python求矩阵每一列大于零的最小值
时间: 2023-07-07 13:12:10 浏览: 117
假设你有一个矩阵 `mat`,可以使用以下代码来找到每一列大于零的最小值:
```python
import numpy as np
mat = np.array([[1, -2, 3], [-4, 5, -6], [7, -8, 9]])
min_vals = []
for i in range(mat.shape[1]):
col = mat[:, i]
positive_vals = col[col > 0]
if len(positive_vals) > 0:
min_val = np.min(positive_vals)
min_vals.append(min_val)
else:
min_vals.append(np.nan)
print(min_vals)
```
这里,我们首先通过循环遍历矩阵的每一列。然后,我们使用布尔索引来仅选择大于零的值,并在这些值中找到最小值。如果列中没有大于零的值,我们将NaN添加到最小值列表中。最后,我们打印出整个列表。
相关问题
用python求矩阵每一列大于零的最小值
可以使用NumPy库来实现矩阵每一列大于零的最小值的求解。具体的实现过程如下:
```python
import numpy as np
# 定义一个矩阵
matrix = np.array([[1, 2, 3], [4, -5, 6], [-7, 8, 9]])
# 对矩阵的每一列进行判断,并取出大于零的元素
positive_values = matrix[:, matrix.min(axis=0) > 0]
# 对取出的元素求最小值
min_positive_value = positive_values.min()
print(min_positive_value)
```
在上述代码中,首先定义了一个矩阵`matrix`,然后使用`matrix.min(axis=0)`对矩阵的每一列进行求最小值的操作。接着使用`matrix[:, matrix.min(axis=0) > 0]`将矩阵中大于零的元素取出来。最后使用`positive_values.min()`对取出的元素求最小值。
用python求矩阵每列大于0的最小值
可以使用numpy库来实现,具体代码如下:
```python
import numpy as np
# 定义矩阵
mat = np.array([[1, 2, -3],
[-4, 5, 6],
[7, -8, 9]])
# 求每列大于0的最小值
result = np.min(mat[mat > 0], axis=0)
print(result)
```
代码解析:
首先定义了一个3x3的矩阵mat,然后使用mat > 0来获取所有大于0的元素的布尔值,再用这个布尔值作为下标去索引mat矩阵,得到一个新的矩阵,其中只包含大于0的元素。最后使用np.min()函数来求这个新矩阵每列的最小值,并将结果存储在result变量中。
阅读全文