首页 > 解决方案 > 在numpy数组中满足条件时如何提取整行和列

问题描述

我有一个这种形式的numpy数组:

array([['A', 2.2, 9.1],
   ['A', 7.1, 2.3],
   ['B', 4.1, 1.1]],dtype=object)

所以我想查询'A',然后返回所有(匹配)字符串'A'的行和列。任何不符合条件的都将被忽略。所以输出应该是:

form = array([['A', 2.2, 9.1],
              ['A', 7.1, 2.3],dtype=object)

我尝试使用j = form[np.where(form == 'A')]

这给出了array(['A', 'A'], dtype=object). 这不是我想要的。

有人可以让我知道我该怎么做吗?

标签: pythonarraysnumpy

解决方案


您可以在使用时对数组进行切片,np.where()以便只使用第一列:

form = np.array([['A', 2.2, 9.1],
   ['A', 7.1, 2.3],
   ['B', 4.1, 1.1]],dtype=object)

j = form[np.where(form[:,0]=='A')]
print (j)
# [['A' 2.2 9.1]
#  ['A' 7.1 2.3]]

推荐阅读