说我们有
a = numpy.arange(25).reshape(5,5)
> array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
继续前进
numpy.where(a[1])
> array([0, 1, 2, 3, 4])
然后类似
a[1][numpy.where(a[1])]
> array([5, 6, 7, 8, 9])
我可以选择数组的水平行和相应的值,但是如何在类似的条件下仅选择特定的垂直列
即。
numpy.where(condition)
> array([1, 6, 11, 16, 21])
答案 0 :(得分:1)
我不确定这是否是您的意思,但是您可以使用[:,column_number]
为列编制索引,其中:
代表“所有行”:
a[:,1][numpy.where(a[1])]
# array([ 1, 6, 11, 16, 21])
但是,以上内容仅相当于a[:,1]
:
>>> a[:,1]
array([ 1, 6, 11, 16, 21])
答案 1 :(得分:1)
请看一下本教程,以了解如何在numpy数组(https://docs.scipy.org/doc/numpy-1.15.1/reference/arrays.indexing.html)上应用切片。至于您的问题,答案是:
a[:,1]