【发布时间】:2020-05-01 15:57:08
【问题描述】:
在 Python 中,对于一个数组,我如何才能找到至少包含一个负元素的列?此外,如何找到至少包含一个负值的行的中位数? 假设这是我们的数组:
import numpy as np
a = np.array([[1,2,0,-4],[-3,4,-4,1],[3,6,2,9]])
提前致谢。
【问题讨论】:
标签: python arrays function numpy
在 Python 中,对于一个数组,我如何才能找到至少包含一个负元素的列?此外,如何找到至少包含一个负值的行的中位数? 假设这是我们的数组:
import numpy as np
a = np.array([[1,2,0,-4],[-3,4,-4,1],[3,6,2,9]])
提前致谢。
【问题讨论】:
标签: python arrays function numpy
>>> (a < 0).any(axis=0)
array([ True, False, True, True])
# Columns.
>>> np.median(a[:, (a < 0).any(axis=0)], axis=0)
array([1., 0., 1.])
# Rows.
>>> np.median(a[:, (a < 0).any(axis=0)], axis==1)
array([ 0., -3., 3.])
# Median of rows where row contains at least one negative value.
>>> np.median(a[(a < 0).any(axis=1), :], axis=1)
array([ 0.5, -1. ])
【讨论】:
a[:, bool_filter]:: 表示从a 中选择所有行,bool_filter 是一个布尔值数组,指示要选择哪些列。在这种情况下,(a < 0).any(axis=0) 表示任何包含负值的列 (axis=0) 的 True,否则为 False。