Python 矩阵搜索
如果我有以下这个矩阵:
import numpy
ar = numpy.array((('0','1','2','3'), ('1','a','b','b'), ('2','b','c','d')), str)
print(ar)
输出:
[['0' '1' '2' '3']
['1' 'a' 'b' 'b']
['2' 'b' 'c' 'd']]
我想要找到在满足特定行和列条件下的值。矩阵的第一行是列名(可能是字符串),而左边的第一列是所有的行名(也可能是字符串)。所以如果我在列上有'2',在行上也有'2',我就能得到'c'。我现在还不知道'c'是什么,只知道行和列的值。我该怎么做呢?
3 个回答
1
ar = [['0', '1', '2', '3'],
['1', 'a', 'b', 'b'],
['2', 'b', 'c', 'd']]
print(ar[2][2])
上面的内容只是为了获取第二列第二行的'c',如果你想获取整列的数据,你需要这样做:
for i in range(0, 3):
print(ar[2][i])
2
如果你是指搜索 'c':
numpy.where(ar == 'c')
3
你可以使用 numpy.where
:
In [7]: numpy.where(ar == 'c')
Out[7]: (array([2]), array([2]))
还有:
In [8]: ar[numpy.where(ar == 'c')]
Out[8]:
array(['c'],
dtype='|S1')